Http工作原理

Http1.1 与 Http1.0向后兼容,运行1.1版本的Web服务器可以与运行1.0版本的浏览器“对话”,运行1.1版本的浏览器也可以与运行1.0版本的Web服务器对话。

HTTP和TCP的关系:

虽然HTTP1.1和HTTP1.0协议本身没有规定支持其传输的底层协议是哪种协议,但通常情况下都是架构在TCP传输协议之上的。

有时出于安全考虑,HTTP还需要经过TLS或者SSL层的封装,架构在SSL层之上的HTTP协议通常称为HTTPS协议。

HTTP客户端(如浏览器)首先发起建立与服务器的TCP连接。

一旦建立连接,客户端和服务器的HTTP进程就可以通过各自的套接字(Socket)来访问下层的TCP(比如TCP建立连接后,在客户端和服务器端各有一个套接字,此套接字包含了IP地址和端口号)。

不管是客户端还是服务器端,套接字都是相应HTTP进程和TCP连接之间的接口。

客户端可以通过套接字发送HTTP请求消息,也从自己的套接字接收HTTP响应消息;类似的,服务器从自己的套接字接收HTTP请求消息,也往自己的套接字发送HTTP响应消息。

客户端或服务器端HTTP进程一旦把某个消息送入各自的套接字,这个消息就完全落入TCP控制之中。

TCP给HTTP提供一个可靠的数据传输服务,这意味着由客户发出的每个HTTP请求消息最终将无损地送达服务器,由服务器发出的每个HTTP响应消息最终也将无损地到达客户。我们可以从中看到分层网络体系结构的一个明显优势-----HTTP不必担心数据会丢失,也无需关心TCP如何从数据的丢失和错序中恢复出来的细节。


猜你喜欢

转载自blog.csdn.net/jz1993/article/details/80785566