码迷,mamicode.com
首页 > Web开发 > 详细

HTTP工作原理

时间:2015-10-16 20:38:10      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:



HTTP工作过程

HTTP协议定义Webclient怎样从Webserver请求Web页面,以及server怎样把Web页面传送给client。HTTP协议採用了请求/响应模型。

client向server发送一个请求报文。请求报文包括请求的方法、URL、协议版本号、请求头部和请求数据。

server以一个状态行作为响应。响应的内容包括协议的版本号、成功或者错误代码、server信息、响应头部和响应数据。下表明了这样的请求/响应模型。

 

技术分享

 

下面是HTTP请求/响应的步骤:

1)client连接到Webserver

一个HTTPclient。一般是浏览器,与Webserver的HTTPport(默觉得80)建立一个TCP套接字连接。比如,http://www.oakcms.cn

2)发送HTTP请求

通过TCP套接字,client向Webserver发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。

3)server接受请求并返回HTTP响应

Webserver解析请求,定位请求资源。

server将资源复本写到TCP套接字。由client读取。

一个响应由状态行、响应头部、空行和响应数据4部分组成。

4)释放连接TCP连接

Webserver主动关闭TCP套接字,释放TCP连接。client被动关闭TCP套接字,释放TCP连接。

5)client浏览器解析HTML内容

client浏览器首先解析状态行,查看表明请求是否成功的状态代码。

然后解析每个响应头,响应头告知下面为若干字节的HTML文档和文档的字符集。client浏览器读取响应数据HTML,依据HTML的语法对其进行格式化,并在浏览器窗体中显示。

HTTP协议的无状态性

HTTP协议是无状态的(stateless)。

也就是说,同一个client第二次訪问同一个server上的页面时,server无法知道这个client以前訪问过,server也无法分辨不同的client。

HTTP的无状态特性简化了server的设计,使server更easy支持大量并发的HTTP请求。

持久连接

HTTP1.0使用的是非持久连接,client必须为每个待请求的对象建立并维护一个新的连接。由于同一个页面可能存在多个对象,所以非持久连接可能使一个页面的下载变得十分缓慢。并且这样的短连接添加了网络传输的负担。HTTP1.1引入了持久连接,同意在同一个连接中存在多次数据请求和响应。即在持久连接情况下,server在发送完响应后并不关闭TCP连接,而client它可以继续通过此连接请求其他对象。

版权声明:本文博主原创文章,博客,未经同意不得转载。

HTTP工作原理

标签:

原文地址:http://www.cnblogs.com/bhlsheji/p/4886151.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!