Насколько я понимаю, стек TCP / IP состоит в том, что прикладной уровень (уровень 4) состоит из реализаций протокола, таких как HTTP.
Реализуют ли пользовательские агенты, такие как веб-браузеры, этот протокол HTTP? т.е. отвечает ли сам пользовательский агент за форматирование пакета данных в соответствии с протоколом HTTP, а затем передачу сообщения на транспортный уровень? Или пользовательский агент передает данные запроса конкретному системному приложению в ОС, которая реализует протокол HTTP?
За HTTP отвечает приложение или какая-то используемая им библиотека.
Вы можете увидеть, как все это устроено, посмотрев на код
Как это http://search.cpan.org/~ether/HTTP-Message-6.11/lib/HTTP/Request.pm
И это https://stackoverflow.com/questions/1359689/how-to-send-http-request-in-java
HTTP - это уровень 7
https://en.wikipedia.org/wiki/List_of_network_protocols_(OSI_model)
Да. Например: https://www.chromium.org/developers/design-documents/network-stack.
Вот почему некоторые браузеры поддерживают некоторые функции (например, Http / 2), а некоторые нет.