Poproś klientów o przesłanie znormalizowanego Accept-Language
nagłówka w żądaniach, a następnie zlokalizuj go na serwerze i dołącz Content-Language
nagłówek w odpowiedziach. Aby uzyskać szczegółowe informacje, patrz RFC 7231 sekcja 5.3.5 .
Lokalizacja po stronie serwera skutkuje mniejszą liczbą podróży w obie strony i zużyciem przepustowości niż wysyłanie metadanych lokalizacji klientów. Ale serwer nie może założyć, jakiego języka chce klient, ponieważ co, jeśli ten klient jest serwerem proxy obsługującym go dla kogoś innego? Co się stanie, jeśli między klientem a serwerem znajduje się warstwa buforująca? W jaki sposób serwer powinien „po prostu dowiedzieć się”, jakiego języka należy użyć w przypadku dowolnego dowolnego żądania?
Próba odpowiedzi na te pytania jest skomplikowana, dlatego zamiast tego wymagają, aby żądania były opisowe i używały standardowego nagłówka, aby klienci mogli negocjować w jakim języku chcą. To się nazywa negocjowanie treści. Accept-Language
Nagłówek jest formą aktywnego negocjacji zawartości, gdy klient mówi serwer co to preferencje, to serwer zdecyduje, co odpowiedzieć na podstawie tych preferencji. Negocjacja treści reaktywnych polega na tym, że klient wysyła zapytanie z zapytaniem do serwera, jakie to są treści, zazwyczaj otrzymuje odpowiedź zawierającą listę linków, a następnie wybiera, którą z nich chce, wybierając link do naśladowania.
To w dużej mierze kwestia osobistego gustu, ale jeśli robisz rzeczy po stronie klienta, zaoszczędzisz na obciążeniu serwera (zakładając statyczne lub buforowane słowniki) i możesz użyć narzędzi niezależnych od języka do testowania usługi.
źródło