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

Учебники

Узнайте, как использовать HTTP благодаря учебникам и руководствам.

Обзор 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 заголовки (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. Это нужно понимать всем разработчикам.

См. также

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

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