#http #session #tcp
#http #сеанс #tcp
Вопрос:
Хорошо, я думаю, я что-то неправильно понял, заканчивается ли сеанс HTTP с получением FIN = 1 или происходит что-то еще, из-за чего клиентское приложение узнает, что данных для получения больше нет? Я анализирую сетевой поток по проводу с помощью WireShark, и на данный момент у меня возникают проблемы с пониманием этого.
Спасибо за помощь!
Ответ №1:
В большинстве случаев вы должны увидеть HTTP-заголовок «Content-Length: …», сообщающий вам, сколько данных (в байтах) следует за последовательностью » r n r n». Указанная последовательность обозначает конец заголовков и начало тела HTTP-сообщения.
Комментарии:
1. Но я не понимаю флаг FIN, означает ли это, что FIN не вступает в действие, поэтому все управление осуществляется по HTTP? Предположительно, когда у нас есть сценарий загрузки веб-страницы браузером, графика из разных ссылок, как браузер узнает, что все было собрано для страницы. Может ли это быть проблемой, контролируемой браузером?
2. Браузер отправляет запросы для каждого ресурса, который он хочет собрать страницу. Браузер и сервер решают, кто и когда закрывает соединение. В HTTP версии 1.1 это делается с заголовками «Соединение: keep-alive» или «Соединение: close». Обычно сервер пытается сохранить соединение открытым в ожидании дополнительных запросов (например, чтобы сэкономить на TCP-квитировании при загрузке следующего изображения).
3. Хорошо, значит, это обычно означает, что когда у нас есть постоянно действующее соединение, ip и porst (которые я называю соединением) будут одинаковыми в этом режиме?
4. ДА. Вы можете следить за потоком в Wireshark.