浏览器是否实现了 HTTP 协议?

浏览器是否实现了 HTTP 协议?

我对 TCP/IP 堆栈的理解是应用层(第 4 层)由 HTTP 等协议实现组成。

像 Web 浏览器这样的用户代理是否自己实现此 HTTP 协议?即用户代理本身是否负责格式化数据包以符合 HTTP 协议,然后将消息传递到传输层?或者用户代理是否将请求数据传递给实现 HTTP 协议的操作系统上的特定系统应用程序?

答案1

是的。例如:https://www.chromium.org/developers/design-documents/network-stack

这就是为什么有些浏览器支持某些功能(例如 Http/2)而有些则不支持的原因。

答案2

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)

相关内容