Подтвердить что ты не робот

Жизненный цикл запроса Http

Недавно я начал работу в качестве разработчика бэкэнд веб-приложений. Я немного застрял в понимании жизненного цикла запроса Http.

То, что я понял,

  • Каждый запрос Http сначала связывается с DNS-сервером, который разрешает домен URL-адреса запроса на IP-адрес.
  • После получения запроса IP-адрес веб-сервера перенаправляется на него (через запрос PUT). Веб-сервер, такой как apache, обрабатывает этот запрос и перенаправляет его в приложение, которое должно обрабатывать это.

После этого я потерялся с

  • Как ответ отправляется приложением пользователю, который его запросил, и будет ли Apcache участвовать в этом?
  • Можно ли просмотреть весь поток в моем браузере с помощью некоторых инструментов отладки?
  • Может кто-нибудь ссылаться на некоторые ссылки, чтобы понять это в глубину?
4b9b3361

Ответ 1

Я думаю, что вы немного ошибаетесь в своем понимании этого.

Если вы перейдете на www.google.com(не используя какие-либо формы, просто хотите сайт), вот что происходит:

  • Сначала браузеру необходимо перевести www.google.com на IP-адрес, если он этого еще не знает. Если он это знает, в этот момент ничего не происходит. Если он этого не знает, он связывается с DNS-сервером для разрешения имени.
  • Затем браузер откроет TCP-соединение с IP-адресом www.google.com и отправит запрос HTTP GET. В этом примере это будет GET / HTTP/1.1
    Host: www.google.com
  • Серверное ПО получит этот HTTP-запрос. Он каким-то образом генерирует HTTP-ответ и отправляет его обратно через TCP-соединение. Как сервер делает это зависимым от сервера. Например, вы можете подключить код приложения в Apache или просто заставить Apache возвращать файл из файловой системы. PHP - это приложение, вызываемое некоторым программным обеспечением, которое затем генерирует ответ, отправленный в браузер. Когда ответ отправляется, в HTTP версии 1.0 соединение закрывается. HTTP 1.1 может иметь постоянные соединения, хотя.
  • Когда браузер получает ответ, он обычно отображает его на экране. Теперь выполняется HTTP-запрос. Щелчок по "поиску" отправит новый запрос на сервер.

GET, PUT, POST, DELETE и другие методы HTTP-запроса. Они имеют особое значение, которое вы можете видеть в RFC.

Файлы cookie обычно используются для идентификации одного и того же пользователя по нескольким HTTP-запросам, называемым сеансами. Поэтому эти файлы cookie называются сеансовыми файлами

Вы можете отлаживать связь с помощью инструмента сетевого сниффера, например Wireshark. В Firefox есть сторонний плагин под названием Tamper Data, который может изменить запрос до его отправки на сервер.

HTTP RFC является хорошим источником того, как все это работает.

Надеюсь, что это поможет.

Ответ 2

Это один из популярных вопросов интервью, задаваемых в разных компаниях, основанных на продуктах.

HTTP Протокол запроса-ответа. Например, пользовательский агент инициирует запрос к серверу, как правило, путем открытия TCP/IP-соединения с определенным портом на хосте (порт 80 по умолчанию). Сам запрос содержит:

строка запроса,

набор заголовков запросов и объект.

HTTP-сервер, прослушивающий этот порт, ожидает, что клиент отправит сообщение с запросом. После получения запроса сервер отправляет ответ, который содержит:

строка состояния, набор заголовков ответов и сущность. Сущность в запросе или ответе может рассматриваться просто как полезная нагрузка, которая может быть двоичной. Другие элементы являются читаемыми символами ASCII. Когда ответ будет завершен, либо браузер, либо сервер могут завершить соединение TCP/IP, или браузер может отправить другой запрос.

Ответ 3

пока сервер получает запрос от браузера, браузер будет привязан к некоторому порту на хосте, ip-адрес и номер порта браузера будут прикреплены с запросом, который отправляется на сервер. сервер отправляет ответ на IP-адрес и номер порта