Что такое HTTP, структура HTTP-запроса и ответа?

Независимо от того, являетесь ли вы пользователем или владельцем веб-сайта, при просмотре вы можете встретить одно слово — HTTP. Важно получить основы HTTP, чтобы понять, как работает Интернет, и какие данные отправляются и принимаются между вашим браузером и веб-сервером. Вот руководство по HTTP для новичков, которое пытается объяснить основы.

Руководство по HTTP для начинающих

В этом руководстве мы объяснили следующие темы:

  1. Что такое HTTP?
  2. Структура HTTP-запроса от клиента
  3. Структура HTTP-ответа от веб-сервера
  4. Пример сквозного HTTP-сеанса
  5. Что такое HTTPS?
  6. Проверка HTTP-запроса и ответа в браузере Chrome
  7. Проверка заголовков HTTP с помощью бесплатного инструмента
  8. Устранение неполадок с кодами состояния HTTP
  9. Детали кода состояния HTTP
  10. Скачать руководство по кодам состояния 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-запроса и ответа в Google Chrome
Просмотр HTTP-запроса и ответа в Google Chrome

Вы можете увидеть детали запроса и ответов, как мы объяснили в предыдущих разделах. Вкладка «Заголовки» покажет вам подробную информацию о заголовке 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. Это действительно поможет в устранении неполадок, связанных с ошибками подключения. Надеюсь, в этом руководстве мы рассмотрели все необходимые детали для начинающих пользователей. Если вы видите, что упущены какие-либо важные детали, просто оставьте комментарий. Мы постараемся обновить это руководство для всех читателей.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *