Пусть клиенты отправляют стандартизированный Accept-Language
заголовок в запросах, затем локализуются на сервере и включают Content-Language
заголовок в ответы. См. RFC 7231, раздел 5.3.5 для деталей.
Локализация на стороне сервера приводит к меньшему количеству обращений и использованию полосы пропускания, чем отправка метаданных локализации клиентов. Но сервер не может предположить, какой язык хочет клиент, потому что, если этот клиент является прокси-сервером, обслуживающим его кому-то еще? Что если между клиентом и сервером существует слой кэширования? Как сервер должен «просто выяснить», какой язык следует использовать для какого-либо произвольного запроса?
Попытка ответить на эти вопросы сложна, поэтому вместо этого потребуйте, чтобы запросы были информативными и использовали стандартный заголовок, чтобы клиенты могли договориться о том, какой язык они хотят. Это называется согласованием контента. Accept-Language
Заголовок является формой активного контента переговоров , когда клиент говорит сервер , что это предпочтение, то сервер решает , что ответить на основе этих предпочтений. Реактивное согласование контента - это когда клиент отправляет запрос, спрашивая сервер, какой тип контента существует, обычно получает ответ, содержащий список ссылок, а затем выбирает, какой из них он хотел бы, выбрав ссылку для перехода.
Это вопрос личного вкуса, но если вы делаете что-то на стороне клиента, вы сэкономите на нагрузке на сервер (при условии использования статических или кэшированных словарей) и сможете использовать независимые от языка инструменты для тестирования службы.
источник