HTTP

Протокол передачи гипер текста ( Hypertext Transfer Protocol - HTTP) это прикладной протокол для передачи гипертекстовых документов, таких как HTML. Он создан для общения между веб-браузерами и веб-серверами, хотя в принципе HTTP может использоваться и для других целей. Протокол следует классической клиент-серверной модели, когда клиент открывает соединение, инициирует запрос, а затем ждет ответа. HTTP - это stateless-протокол, то есть сервер не сохраняет никаких данных (состояние) между парами запросов-ответов. Несмотря на то, что HTTP основан на TCP/IP , он так же может использовать любой транспорт, который не теряет молча сообщения (то есть обязан знать дошло ли сообщение до адресата). 

Учебники

Обзор HTTP
Основные свойства клиент-серверного протокола: что можно сделать и для чего он предназначен
Эволюция HTTP
Краткое описание изменений, произошедших в HTTP, начиная с самых ранних версий, заканчивая новой HTTP/2 и далее.
Принципы вэб-безопасности Mozilla
Сборник советов для помощи в разработке защищённых вэб-приложений.
HTTP-сообщения (HTTP Messages)
Описывает тип и структуру разных видов сообщений HTTP/1.x и HTTP/2.
Обычный сеанс HTTP
Показывает и описывает течение обычногое сеанса HTTP
Управление подключениями в HTTP/1.x
Описывает три модели управления подключыениями доступными в HTTP/1.x, их сильные и слабые стороны
HTTP-кэширование (HTTP Cache)
Кэширование это важнейший инструмент для повышения производительности веб-сайтов. Эта статья представляет разные виды кэша, и как можно использовать HTTP-заголовки для конфигурации и управления кэшированием.
HTTP куки (HTTP cookies)
Как работают куки можно почитать в RFC 6265. В момент получения HTTP-запроса , сервер может послать "Set-Cookie"-заголовок в ответе. После этого, значение куки посылается клиентом с каждым запросом к этому серверу. Делается это в форме Cookie HTTP header. Дополнительно, можно указать истечение срока куки, а так же ограничения для специфического домена или пути.
Контроль доступа (совместное использование ресурсов между разными источниками, HTTP access control (CORS))
Межсайтовые HTTP-запросы (кросс-сайтовые) - это HTTP-запросы к ресурсам, находящимся домене отличающимся от того, с которого производится запрос. Например, HTML-страница, загружаемая с домена А (http://domaina.example), запрашивает изображение с домена Б (http://domainb.foo), используя тег img (http://domainb.foo/image.jpg).  Это происходит постоянно в мире веба: страницы загружают различные ресурсы в кроссайтовой манере, включая стили (CSS) , изображения, скрипты и другие ресурсы. CORS позволяет разработчикам сайтов контролировать межсайтовые запросы.
Контроль предварительной загрузки DNS (Controlling DNS prefetching)
Firefox как и большинство других браузеров выполняет предварительную загрузку DNS (DNS prefetching). Это действие, когда брайзеры превентивно выполняют разрешение доменных имён (получают имена доменов) для ссылок, по которым пользователь может перейти, а также для ссылок на ресурсы, такие как картинки, CSS,  JavaScript. Эта предварительная загрузка выполняется в фоновом режиме, так что вполне вероятно, что к моменту обращения к объектам в документе, DNS уже получен. Это уменьшает задержки, когда, например, пользователь кликает на ссылку.

Справочники

HTTP заголовки (HTTP headers)
Заголовки HTTP сообщения используются для точного описания загружаемого ресурса или поведения сервера или клиента. Пользовательские заголовки можно добавить используя 'X-' префикс; другие перечислены в  IANA registry, содержание которого в свою очередь определено в RFC 4229. IANA так же поддерживает регистр предложенных новых HTTP заголовков.
Методы HTTP запроса
Различные операции, которые выполняются с HTTP:  
Коды ответа (HTTP response codes)
Коды ответа HTTP указывают на результат выполнения определенного HTTP запроса. Ответы сгруппированы в пять категорий: информационные ответы, удачные ответы, перенаправления, ошибки клиента, и ошибки сервера.
Директивы CSP
Content-Security-Policy-поля заголовков ответа позволяют администраторам веб-сайтов констролировать источники ресурсов, которые браузер пользователя может загрузить на данную веб-страницу. За некоторым исключением, эти политики связаны с указанием сервера-источника и адресов доступа (обращения) скриптов.

Инструменты и ресурсы

Firefox Developer Tools
Network monitor
Mozilla Observatory
Проект, созданный в помощь разработчикам, системным администраторам и специалистам по безопасности для создания безопасных и надёжных сайтов.
RedBot
Инструмент для проверки кэширования заголовков
Принципы работы современных веб-браузеров
Комплексная статья по внутренностям браузеров и потоку запросов через протокол HTTP. Это нужно понимать всем разработчикам.

См. также

Метки документа и участники

 Внесли вклад в эту страницу: pk.prog, warnabas, nilfalse, lerniri, Sheppy
 Обновлялась последний раз: pk.prog,