DNS
браузер преобразует домен в ip
адресTCP
соединение с web-серверомhttps
, устанавливает TLS
соединение поверх TCP
HTTP
запрос, отправляет его, получает в ответе документcss
, img
, javascript
)keep-alive
or close
)TCP/TLS
HTTP
запрос состоит из
GET /robots.txt HTTP/1.1
Accept: text/html,application/xhtml+xml
Accept-Encoding: gzip, deflate
Cache-Control: max-age=0
Connection: keep-alive
Host: www.ru
HTTP
ответ:
HTTP/1.1 404 Not Found
Server: nginx/1.5.7
Date: Sat, 25 Jul 2015 09:58:17 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: close
Content-Type
- MIME тип документаContent-Length
- длина сообщенияContent-Encoding
- кодирование документа, например gzip
сжатиеTransfer-Encoding
- формат передачи, например, chunked
Connection
- управление соединениемUpgrage
- смена протокола (к примеру с TCP
на UDP
)Authorization
- авторизация, чаще всего логин\парольCookie
- передача состояния (сессии) на серверReferer
- URL предыдущего документаUser-Agent
- описание клиентаIf-Modified-Since
- условный GET запрос (если документ не был модифицирован, то возвращать его не надо)Accept-*
- согласование содержимогоLocation
- новый URL документа при перенаправленияхSet-Cookie
- установка состояния (сессии) в браузереLast-Modified
- дата последнего изменения документаDate
- дата на сервере, для согласования кэшейServer
- описание web-сервера, название и версияHTTP/1.0
предполагает закрытие TCP соединения сразу после ответа сервера.HTTP/1.1
предполагает удержание TCP соединения, если не было заголовка Connection: close
.Connection: close