2。3 HTTP 的工作流程
HTTP 协议是一种请求和应答的协议。HTTP 协议已请求方式和 URI 协议等形式给服务器 发哦是那个信息。要做到这一点 HTTP 协议应具备客户信息,参数请求修改和译者必要的正 文内容。
服务器在进行应答的时候,是以包括消息协议版本和代码的状态,其中代码有成功的和错 误。还包括了服务器信息,实体维护信息还有实体内容的类 MIME 消息。
发送到服务器上的请求由 HTTP 的方式构成,然后以用户代理的方式发起,以用户端和服 务器端单独建立一对一的连接形式完成传输。
客户端会通过 HTTP 协议,建立一个安全连接,将其请求事务送各个服务器端,因此,服 务器无法主动的和客户进行联系。不过服务器端哟提前中断该连接的权限。到很简单的例子, 在一个浏览器下载一个文件时,用户单击“停止”键可以中断文件的下载,并关闭 HTTP 连 接。
2。4 HTTP 工作步骤
(1)连接:建立服务器和浏览器的安全连接,这是需要打开一个虚拟文件,该文件被称作 Socklet 套接字,
(2)请求:打开这个虚拟文件之后浏览器就可以向服务器发送一个请求。该请求的内容一 般是 GET 或 POST 命令。GET 路径/文件名 HTTP/1 是 GET 命令的主要形式。文件名和
HTTP/1。0 分别的指出所访问的文件和 web 浏览器使用的 HTTP 版本。
(3)应答:在将申请提交后,HTTP 协议会处理两端的请求,并把结果发送回去,这是 被请求的页面就会传到浏览器上面,web 服务器找到该文件再传给浏览器。然后 web 服务器 把传送内容放入 HTTP 的头信息传送给服务器。其中头信息和体信息需要空行分开。其中, 常用的 HTTP 头信息由 HTTP1。0 200 OK、MIME_Vesion:1。0、content_type:、content length
(4)关闭连接:浏览器和服务器之间的连接断开,应答结束,这样保证了其他浏览器与服 务器的正常连接。
HTTP 通信一般发生在 TCP\IP 连接上,默认端口是 80 端口,不过其他端口也会用到。 在 HTTP1。0 中可以用于一个或多个请求与应答交换,不过连接后可能会因为某些原因而中 断。如图 2。1 所示
2。5 HTTP 的持久连接和非持久连接。
(1)持久连接文献综述
HTTP1。1 默认的是使用非持久连接。在持久连接的情况下,服务器打开连接,单个持久 的 TCP 发送整个 weB 页面,也可以发送多个 web 页面。一般情况下 HTTP 端回在不用的时 候关闭。持久连接有带流水线和不带流水线两种方式,在不带的情况下,客户端收到响应 后,因为连接关闭,会有一个等待延迟,称为 RTT 延迟,所以 web 页面在请求和接收的时 候都会经历这个等待时间,但是在带流水线的方式下不会岑在这个等待时间。HTTP1。1 就是 默认的带流水线的持久连接。这样的话,每个 HTTP 客户接到引用就会发出一个请求。服务 器接收到请求就可以连续的吧请求发送给各个对象。于是这样便只会经历一个 RTT 延迟。 另外,带流水线的方式会缩短一个等待时间,原因在于每个对象都和同一个 TCP 连接,服 务器发出的请求不会经历多余的慢启动,所以带流水线的方式延迟较不带流水线的方式来说 较小一些。
(2)非持久连接:
在非持久连接时,服务器需要初始化一个 TCP 连接,让主机和服务器完成对接。接着 服务器以默认的端口监听从 HTTP 客户发来的请求信息。第二步,HTTP 客户端通过本地的 套接字发出一个请求信息。第三步,服务器收到该请求,从自己的内存中取出一个对象,用 同一个套接字发出相对应的响应消息。第四步,HTTP 告知 TCP 关闭该连接。第五步, HTTP 客户经过这个套接字接收这个响应消息,