admin 管理员组

文章数量: 887021

我是荔园微风,作为一名在IT界整整25年的老兵,年轻的时候我经常把HTTP和访问网页看Web页划等号,这种错误观念曾导致我对HTTP的理解一直浮于表面。今天我就把我的经验在这里写一写。

HTTP是工作在客户/服务器模式下的基于TCP的协议。HTTP使用TCP而不是UDP的原因在于,打开一个网页必须传送很多数据,而TCP协议提供传输控制,可以按顺序组织数据,并且期间可以对错序数据进行纠正。客户端一般是终端用户,服务器端一般是网站服务器。

客户端通过使用Web浏览器或其他工具,发起一个到服务器上指定端口(默认为80)的HTTP请求。一旦收到请示,服务器向客户端发回响应消息,消息的内容可能是以下三种:

1.请示的文件

2.错误消息

3.其他信息

客户端请示和连接端口需要大于1024。

当你在浏览器上单击 http://www.csdn/blog/index.html这条URL会发生什么事情呢,我们来看一下:

1.发生地点:客户端浏览器

发生动作:用户单击URL

2.发生地点:客户端浏览器——>域名服务器

发生动作:请示解析www.csdn的IP地址

3.发生地点:域名服务器——>客户端浏览器

发生动作:返回www.csdn的IP地址

4.发生地点:客户端浏览器<——>www.csdn服务器(注意箭头,是双向的)

发生动作:建立TCP连接,服务器端口80

5.发生地点:客户端浏览器——>www.csdn服务器

发生动作:请求报文GET /blog/index.html

6.发生地点:www.csdn服务器——>客户端浏览器

发生动作:响应并传输HTML文件

7.发生地点:客户端浏览器<——>www.csdn服务器(注意箭头,是双向的)

发生动作:释放TCP连接

Web服务器往往访问压力比较大,为了提高效率,HTTP1.1规定浏览器与服务器的连接时间很短,浏览器的每次请求都需要与服务器建立新的TCP的连接,服务器处理完请求之后立即断开TCP连接,服务器不记录过去的请求。

按这种行为方式,访问具有多个文档、图像或图片的网页时,需要建立多个独立连接进行请求与响应,每个连接只传输一个文档、图像或图片。客户端和服务器端需要频繁的建立和关闭连接,会严重影响双方的性能。网页中如果包含Applet、JavaScript、CSS时,也会出现性能下降。

为了解决这个问题,HTTP1.1后来开始支持持久连接。这样通过一个TCP连接,就能传送多个HTTP请求和响应,大大减少建立和关闭连接造成的消耗和延迟。这样访问一个多图片的网页文件,可以在同一连接中传输多个请求与应答。当然,多文件请求与应答,还是需要分别进行连接。

HTTP1.1允许客户端可以不用等待上一次请求返回的结果,就可以进行下一次请求,但是服务器端必须按照接收到请求的先后顺序依次返回结果,以确保客户端能分清每次请求的响应内容。

后来HTTP出现了更多的协议,大家可以直接搜索相关信息。

各位小伙伴,这次我们就说到这里,下次我们再深入研究Windows这个强大的系统,相信你一定能喜欢上Windows。如果要转载我的文章请说明出处哦。

作者简介:荔园微风,1981年生,高级工程师,浙大工学硕士,软件工程项目主管,做过程序员、软件设计师、系统架构师,早期的Windows程序员,Visual Studio忠实用户,C/C++使用者,是一位在计算机界学习、拼搏、奋斗了25年的老将,经历了UNIX时代、桌面WIN32时代、Web应用时代、云计算时代、手机安卓时代、大数据时代、ICT时代、AI深度学习时代、智能机器时代,我不知道未来还会有什么时代,只记得这一路走来,充满着艰辛与收获,愿同大家一起走下去,充满希望的走下去。

本文标签: 你是 环境 网页 器里 Windows