6.1 Rodzaje nagłówków
Nagłówki żądań http to w rzeczywistości informacje o usługach dla klienta http i serwera http. Ale jest to bardzo ważne, a jeśli w ogóle ich nie rozumiesz, często będzie to dla ciebie schodzić na bok. Więc przynajmniej o nich poczytaj.
Wszystkie nagłówki http można podzielić na 4 główne grupy:
# | Typ nagłówka | Opis | Notatka |
---|---|---|---|
1 | Nagłówki ogólne | Nagłówki ogólne | Używane w żądaniach i odpowiedziach |
2 | Nagłówki żądań | Nagłówki żądań | Używane tylko w żądaniach |
3 | nagłówki odpowiedzi | Nagłówki odpowiedzi | Używane tylko w odpowiedziach |
4 | Nagłówki encji | Nagłówki jednostek | Towarzyszyć każdej jednostce wiadomości |
6.2 Klient użytkownika
Najważniejszym i najbardziej popularnym nagłówkiem jest User-Agent . Jest to specjalny ciąg opisujący, który klient wysyła żądanie do serwera. To jest imię klienta.
Często serwer nieznacznie dostosuje swoją odpowiedź do osoby żądającej. Na przykład, jeśli z żądania jasno wynika, że pochodzi ono z przeglądarki telefonu komórkowego, można mu nadać mobilną wersję strony HTML.
Nierzadko spamboty, menedżery pobierania i niektóre przeglądarki wysyłają fałszywe ciągi User-Agent , aby udawać legalnych klientów. Ta sytuacja jest znana jako fałszowanie agenta użytkownika lub fałszowanie agenta użytkownika.
Na przykład mój User-Agent wygląda teraz tak:
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0
Zawiera informacje o przeglądarce, systemie operacyjnym i silniku sieciowym przeglądarki.
6.3 Typ treści
Drugim najpopularniejszym nagłówkiem jest Content-Type . Służy do określenia typu MIME zasobu obsługiwanego przez serwer.
Nawet u zarania Internetu rodzaje przesyłanych treści medialnych były dla wygody ustandaryzowane. Nazywa się je Internet Media Types lub w skrócie MimeTypes . Dzielą się one na 9 kategorii:
- aplikacja
- audio
- przykład
- obraz
- wiadomość
- Model
- wieloczęściowy
- tekst
- wideo
Przykłady:
Kategoria | Typ | Opis |
---|---|---|
audio | audio/mp4 | Plik audio w formacie mp4 |
audio/aac | plik dźwiękowy AAC | |
obraz | obraz/gif | obrazek w gifie |
obraz/jpeg | obrazek jpeg | |
obraz/png | obrazek png | |
tekst | tekst/css | plik CSS |
tekst/html | Plik HTML | |
wideo | wideo/mpeg | Plik wideo w formacie mpeg |
wideo/internet | Plik wideo w formacie webm | |
wideo/3gpp | Plik wideo w formacie 3gpp | |
aplikacja | application/x-www-formularz-urlencoded | Zakodowane dane |
aplikacja/zip | Archiwum zip | |
aplikacja/javascript | JavaScript | |
aplikacja/xml | XML |
Zwykle serwer wie, jakie dane podaje. Ale jeśli generujesz odpowiedź serwera za pomocą własnego kodu, musisz określić typ odpowiedzi (Content-Type) swojego serwera.
6.4 Długość treści
Ten nagłówek określa długość odpowiedzi serwera . Jeśli w prosty sposób, to rozmiar danego pliku. Nie musisz ręcznie ustawiać tej opcji. Chociaż może warto spojrzeć na to, co podał serwer, jeśli z jakiegoś powodu odpowiedź nie nadeszła.
6.5 Zaakceptuj kodowanie
Za pomocą tego nagłówka klient może wskazać serwerowi, że obsługuje różne algorytmy kompresji treści . W ten sposób serwer może najpierw zarchiwizować zawartość, na przykład za pomocą archiwum zip, a następnie wysłać ją do klienta, a klient może poprawnie odtworzyć oryginalną zawartość.
Zaletą archiwizacji jest to, że im mniejszy plik, tym szybszy transfer. Wady archiwizacji - dodatkowe obciążenie klienta i serwera. Archiwizacja ma sens przy przesyłaniu dużych plików i często nie ma sensu przy przesyłaniu małych.
Przykład takiego nagłówka:
Accept-Encoding: deflate, gzip;q=1.0, *;q=0.5
Gdzie deflate
i gzip
są obsługiwane algorytmy kompresji danych, a q
oznacza stopień kompresji.