Что такое HTTP, структура HTTP-запроса и ответа?
Независимо от того, являетесь ли вы пользователем или владельцем веб-сайта, при просмотре вы можете встретить одно слово — HTTP. Важно получить основы HTTP, чтобы понять, как работает Интернет, и какие данные отправляются и принимаются между вашим браузером и веб-сервером. Вот руководство по HTTP для новичков, которое пытается объяснить основы.
Руководство по HTTP для начинающих
В этом руководстве мы объяснили следующие темы:
- Что такое HTTP?
- Структура HTTP-запроса от клиента
- Структура HTTP-ответа от веб-сервера
- Пример сквозного HTTP-сеанса
- Что такое HTTPS?
- Проверка HTTP-запроса и ответа в браузере Chrome
- Проверка заголовков HTTP с помощью бесплатного инструмента
- Устранение неполадок с кодами состояния HTTP
- Детали кода состояния HTTP
- Скачать руководство по кодам состояния HTTP
1. Что такое HTTP?
HTTP означает ЧАСyperТдоб Тперевод ппротокол. Это основа для передачи данных в Интернете. Обмен данными начинается с запроса, отправленного от клиента, и заканчивается ответом, полученным от веб-сервера.
- URL-адрес веб-сайта, начинающийся с «http: //», вводится в веб-браузере с компьютера (клиента). Браузером может быть Chrome, Firefox, Edge, Safari, Opera или что-нибудь еще.
- Браузер отправляет запрос на веб-сервер, на котором размещен веб-сайт.
- Затем веб-сервер возвращает браузеру ответ в виде HTML-страницы или документа любого другого формата.
- Браузер отображает ответ сервера пользователю.
Символьное представление процесса связи HTTP показано на рисунке ниже:
Веб-браузер называется пользовательским агентом, а другим примером пользовательского агента являются сканеры поисковых систем, таких как Googlebot.
2. Структура HTTP-запроса от клиента
Простое сообщение-запрос от клиентского компьютера состоит из следующих компонентов:
- Строка запроса на получение необходимого ресурса, например, запрос GET /content/page1.html запрашивает ресурс с именем /content/page1.html с сервера.
- Заголовки (пример — Accept-Language: EN).
- Пустая строка.
- Тело сообщения, которое не является обязательным.
Все строки должны заканчиваться символом возврата каретки и перевода строки. Пустая строка должна содержать только возврат каретки и перевод строки без пробелов.
3. Структура HTTP-ответа от веб-сервера
Простой ответ сервера содержит следующие компоненты:
- Код состояния HTTP (Например, HTTP / 1.1 301 перемещен навсегда, означает, что запрошенный ресурс был постоянно перемещен и перенаправлялся на какой-либо другой ресурс).
- Заголовки (пример — Content-Type: html)
- Пустая строка.
- Тело сообщения, которое не является обязательным.
Все строки в ответе сервера должны заканчиваться возвратом каретки и переводом строки. Подобно запросу, пустая строка в ответе также должна содержать только возврат каретки и перевод строки без пробелов.
4. Пример HTTP-сеанса
Рассмотрим пример, когда вы хотите открыть страницу home.html с сайта yoursite.com. Ниже показано, как должен выглядеть запрос клиентского браузера для получения страницы «home.html» с «yoursite.com».
GET /home.html HTTP/1.1 Host: www.yoursite.com
Ответ веб-сервера должен выглядеть следующим образом:
HTTP/1.1 200 OK Date: Sun, 28 Jul 2013 15:37:37 GMT Server: Apache Last-Modified: Sun, 07 Jul 2013 06:13:43 GMT Transfer-Encoding: chunked Connection: Keep-Alive Content-Type: text/html; charset=UTF-8 Webpage Content
Кодирование передачи по частям — это метод, при котором сервер отвечает данными фрагментами, которые используются вместо заголовка Content-Length. Обмен данными прекращается при получении блока нулевой длины, и этот метод используется в HTTP версии 1.1.
5. Что это за HTTPS?
Теперь вы понимаете HTTP, тогда что это за HTTPS? HTTPS — это защищенный протокол HTTP, необходимый для безопасной отправки и получения информации через Интернет. В настоящее время для всех веб-сайтов обязательно иметь протокол HTTPS, чтобы иметь защищенный Интернет. Браузеры, такие как Google Chrome, будут отображать предупреждение с сообщением «Небезопасно» в адресной строке, если сайт не обслуживается через HTTPS.
Помимо безопасности и шифрования, структура связи протокола HTTPS остается такой же, как и у протокола HTTP, как описано выше.
Предупреждение: Мы не рекомендуем использовать конфиденциальную информацию, такую как данные кредитной карты, на сайтах HTTP. Убедитесь, что финансовые транзакции происходят через протокол HTTPS.
6. Как проверить HTTP-запрос и ответ в Chrome?
Что ж, пора практичнее. Давайте возьмем популярный браузер Google Chrome, но процесс просмотра деталей остается таким же во всех других браузерах.
- Откройте веб-страницу в Google Chrome и перейдите в меню «Просмотр> Разработчик> Инструменты разработчика».
- Вы также можете открыть консоль разработчика, щелкнув страницу правой кнопкой мыши и выбрав опцию «Проверить».
- Перейдите на вкладку «Сеть» и перезагрузите страницу. Теперь вы увидите время загрузки для каждого отдельного компонента на странице.
- Щелкните значок «Показать обзор», чтобы удалить временную шкалу, чтобы можно было четко просмотреть другие сведения.
- Щелкните URL-адрес страницы на левой панели и перейдите на вкладку «Ответ». (Вы также можете просмотреть те же сведения на вкладке «Предварительный просмотр»).

Вы можете увидеть детали запроса и ответов, как мы объяснили в предыдущих разделах. Вкладка «Заголовки» покажет вам подробную информацию о заголовке HTTP для запроса и ответа для выбранного элемента.
7. Средство проверки заголовка HTTP
Как и в случае с Chrome, существует множество других бесплатных инструментов для проверки кода ответа, полученного в заголовках HTTP. Например, перейдите к этому инструменту проверки заголовка HTTP, введите любой URL-адрес, который вы хотите проверить, и нажмите кнопку отправки.
Вы увидите полную информацию о заголовке, как показано ниже:
HTTP/1.1 301 Moved Permanently Server: nginx Date: Sun, 25 Feb 2018 16:32:55 GMT Content-Type: text/html; charset=iso-8859-1 Connection: keep-alive Location: https://www.webnots.com/ Cache-Control: max-age=3600 Expires: Sun, 25 Feb 2018 17:32:55 GMT HTTP/1.1 200 OK Server: nginx Date: Sun, 25 Feb 2018 16:32:55 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive Vary: Accept-Encoding X-Frame-Options: SAMEORIGIN X-Powered-By: W3 Total Cache/0.9.6 Link: ; rel="https://api.w.org/", ; rel=shortlink Vary: X-Forwarded-Proto,User-Agent Cache-Control: max-age=3600 Expires: Sun, 25 Feb 2018 17:32:55 GMT Host-Header: 192fc2e7e50945beb8231a492d6a8024
8. Устранение неполадок с кодами состояния HTTP.
Есть много причин, по которым запрос браузера не получит требуемый ответ от веб-сервера. В таких случаях отказа информация ответа от веб-сервера важна для устранения неполадок. Коды состояния, возвращаемые сервером, можно четко увидеть в разделе инструментов разработчика Chrome. На приведенном выше снимке экрана строка 4 — код HTTP / 1.1 200 OK указывает, что сервер успешно вернул запрошенный ресурс без каких-либо проблем. Вы можете получить эти сведения с помощью инструмента проверки заголовка HTTP, как описано выше.
Трехзначный код, возвращаемый сервером, называется кодом состояния HTTP, хотя некоторые люди называют его кодом ошибки, хотя это не ошибка. Это просто статусный ответ, который поможет вам найти причину сбоя связи. Помните, что сбой связи также может произойти из-за проблем с браузером и компьютером, таких как проблемы с локальной сетью. В этих случаях современные браузеры, такие как Chrome, будут отображать ошибки браузера, такие как «err_network_changed», «err_internet_disconnected» и т. Д.
9. Подробная информация о кодах состояния HTTP
Коды состояния HTTP разработаны в соответствии со стандартами Интернета, определенными Инженерной группой Интернета (IETF). Они подразделяются на пять различных категорий, как показано ниже:
- Серия 1xx — информационное сообщение
- 2xx — Сообщение об успехе
- 3xx — сообщение о перенаправлении
- 4xx — сообщения об ошибках, относящиеся к клиенту
- 5xx — сообщения об ошибках, относящиеся к серверу
9.1. Информационная серия — 1xx
Это информационные коды, отправленные сервером, указывающие на то, что запрос получен от клиента успешно, и он обрабатывается на стороне сервера. Это предварительный ответ сервера, обычно содержащий только строку состояния и необязательные заголовки, и заканчивается пустой строкой. Узнайте подробнее о кодах состояния 1xx.
9.2. Успех серии — 2хх
Это коды успеха, отправленные сервером, указывающие, что запрос получен и обработан успешно. Узнайте подробнее о кодах состояния 2xx.
9.3. Перенаправление — 3хх
Это коды состояния для перенаправления. Когда пользовательский агент (веб-браузер или поисковый робот), запрашивающий URL1, перенаправляется на другой ресурс URL2, в качестве ответа возвращаются коды 2xx. Эти коды не видны в окне браузера, поскольку браузеры автоматически перенаправляются на другой URL. Подробно узнайте больше о кодах состояния 3xx.
9.4. Ошибки клиента — 4xx
Это ошибки со стороны клиента, которые сервер не смог устранить. Простой и хорошо известный пример — ошибка «404 — страница не найдена», отображаемая в окне браузера, когда браузер запрашивает недоступный URL. Узнайте подробнее о кодах состояния 4xx.
9.5. Серия ошибок сервера — 5xx
Когда веб-сервер не может выполнить действительный запрос от клиента, он отправляет в ответ код ошибки 5xx. Примером является ошибка «504 — Тайм-аут шлюза», когда веб-сервер1 действует как прокси-сервер для получения ответа от другого веб-сервера2, но не может получить своевременный ответ. Узнайте подробнее о кодах состояния 5xx.
10. Загрузите руководство по кодам состояния HTTP.
Вы можете загрузить полное руководство по кодам состояния HTTP для автономного использования и подробно узнать больше о каждом коде.
Заключительные слова
Мы рекомендуем всем пользователям Интернета и владельцам веб-сайтов изучить базовые концепции HTTP. Это действительно поможет в устранении неполадок, связанных с ошибками подключения. Надеюсь, в этом руководстве мы рассмотрели все необходимые детали для начинающих пользователей. Если вы видите, что упущены какие-либо важные детали, просто оставьте комментарий. Мы постараемся обновить это руководство для всех читателей.