HTTP в простых терминах - PullRequest
       11

HTTP в простых терминах

2 голосов
/ 08 февраля 2020

Я наткнулся на термин HTTP. Я провел некоторое исследование и хотел убедиться, что правильно понял этот термин.

Итак, правда ли, что HTTP, простыми словами, письмо, содержащее информацию на языке, понятном как клиенту, так и серверу.

Затем это письмо отправляется на сервер благодаря TCP / IP, который служит машиной, которая доставляет это письмо на сервер.

Затем, после того как письмо доставлено на сервер, Сервер считывает содержимое письма, и, если это запрос GET, сервер берет необходимые данные и присоединяет эти данные к письму и отправляет обратно клиенту снова через TCP / IP. Но если это был POST-запрос, то клиент прикрепляет данные к письму и отправляет их на сервер, чтобы сохранить эти данные в базе данных.

Это правда?

Ответы [ 2 ]

1 голос
/ 08 февраля 2020

TCP - это сетевой протокол, который устанавливает соединение с сервером по сети (или Inte rnet) и обеспечивает двустороннюю связь. HTTP-трафик будет c внутри этого туннеля TCP. TCP - очень полезный протокол, который помогает поддерживать порядок, он гарантирует, что пакеты данных читаются в правильном порядке, и что пакеты, которые пропали во время передачи, отправляются снова.

Иногда между HTTP и HTTP может существовать другой уровень протокола TCP, называется SSL. Он отвечает за шифрование данных, передаваемых по протоколу TCP, для безопасной передачи по небезопасным сетям. Это известно как HTTPS, и это просто HTTP, но с использованием этого дополнительного уровня.

Хотя почти всегда верно, HTTP не обязательно использует TCP. Запросы UPnP используют HTTP поверх UDP, сетевой протокол, который использует автономные пакеты вместо соединения.

HTTP - это простой текстовый протокол, означающий, что он разработан таким образом, чтобы человек мог понять его без использования каких-либо инструментов. Это очень удобно для обучения.

Если вы используете Firefox или Chrome, вы можете нажать Ctrl-Shift- C, чтобы открыть Инструменты разработчика, и на вкладке Сеть вы увидите каждый HTTP-запрос, который делает ваш браузер, точно посмотрите, что это за запрос, на что ответил сервер и т. д. c, и получите лучшее представление о том, как работает этот протокол.

Подробное объяснение этого - слишком ... слишком за этот ответ. Но, как вы увидите, все не так сложно.

1 голос
/ 08 февраля 2020

По сути, это правда.

Однако сервер может решить, что делать, если это GET или POST или любой другой запрос (ему не нужно, например, добавлять его в файл).

Я покажу вам дополнительную информацию / попытаюсь объяснить ее своими словами:

TCP - это еще один протокол протокола связи. Он позволяет клиенту открывать соединение с сервером, и он может впоследствии общаться.

HTTP (протокол передачи гипертекста) создается на TCP.

Сначала клиент открывает соединение с сервер.

После этого клиент отправляет HTTP-запрос. Первая строка содержит тип запроса, путь и версию. Например, это может быть GET / HTTP/1.1.

Следующая часть запроса содержит параметры запроса. Каждый параметр - это строка. Параметры отправляются следующим образом: paramName: paramValue

Эта часть запроса заканчивается пустой строкой.

Если это запрос POST, параметры запроса добавляются следующими. Если это запрос GET, эти параметры запроса добавляются путем (например, /index.html?paramName=paramValue)

. После получения запроса сервер отправляет ответ HTTP обратно клиенту.

Первая строка ответа содержит версию HTTP, код состояния и сообщение о состоянии. Например, это может быть HTTP/1.1 200 OK.

Тогда, как и в запросе, параметры ответа следующие. Например, Content-Length: 1024.

Параметры ответа также заканчиваются пустой строкой.

Последняя часть ответа - это тело / содержимое. Например, это может быть код HTML сайта, который вы посещаете.

Очевидно, что длина содержимого / тела ответа должна соответствовать параметру Content-Length (в байтах).

После этого соединение будет закрыто (нормально). Если клиент, например, запросит ресурсы, он отправит другой запрос. У сервера НЕТ ВОЗМОЖНОСТИ отправлять данные клиенту после этого, если только клиент не отправит другой запрос (веб-сокеты могут обойти эту проблему).

GET предназначен для получения содержимого сайта. Веб-браузер отправит GET запросить, если вы вводите URL. POST может использоваться для обновления сайта, но на самом деле сервер может решить это. POST также может использоваться, если сервер не хочет, чтобы параметры запроса отображались в адресной строке.

Существуют другие методы, такие как PATCH или DELETE, которые используются некоторыми API.

Некоторые важные коды состояния (и сообщения о состоянии):

  • 200 OK (все прошло хорошо)
  • 204 No content (вроде нормально, но в ответе нет тела)
  • 400 Bad Request (что-то не так с запросом)
  • 404 Not found (запрошенный файл (путь) не найден на сервере)
  • 500 Internal server error (An при обработке запроса произошла ошибка)

Каждый код состояния, начинающийся с 1, связан с сообщением клиенту чего-либо.

Если он начинается с 2, все прошло вправо.

Код состояния, начинающийся с 3, перенаправляет клиента на другой сайт.

Если он начинается с 4, на стороне клиента возникла ошибка.

Коды, начинающиеся с 5, представляют собой ошибку, которая произошла на стороне сервера.

...