HTTP都是以TCP为底层协议。浏览器首先发出请求,与服务器TCP连接。连接后,浏览器和服务都可以使用自己的套接字来访问TCP。浏览器往自己的套接字中发送请求并接受响应,服务器从自己的套接字中接受请求并发出响应。TCP有自己的控制机制,该机制原理如下:每个新的连接开始都以很低的速度传输数据,只要没有堵塞的情况发生,传输的速度会迅速的上升。这个机制称为缓启动 slow start。
同时,HTTP完全不维护用户的状态信息。该协议为无状态协议。
HTTP 协议分为HTTP/1.0 和HTTP/1.1,其中HTTP/1.1使用持久连接。
持久连接和非持久连接的区别。
非持久连接没发出一个对象后,TCP连接就会关闭。在开一个页面中可能开关了很多个TCP连接,TCP就在服务器和客户端使用了多个TCP缓存区并维护多个变量。由于TCP协议的缓启动,所以非持久地连接中TCP连接多在缓启动中就关闭了。浏览器是使用多个TCP连接读取页面的。持久连接会让TCP连接持续开着,直到HTTP还是回收它,这样一个TCP连接可能发送一个甚至多个页面给用户。
HTTP内容分为请求消息和响应消息两类。
HTTP请求消息如下:
GET /path/aa.html HTTP/1.1
Host:www.url
Connection:close
User-agent:Mozilla/4.0
Accept-language:zh-cn
该内容包含了服务器位置,HTTP版本,语言版本。
HTTP响应内容如下:
HTTP/1.1
Connectlon:
Date:
Server:
LastNodified:
ContentLength:
ContentType:
头内容的状态值如下:
200OK
表示一切正常,凡是2开头的代码表示的都是成功进行中。
404NotFound
表示文件不存在。
403Forbidden
服务器无法满足现在的请求,连接数太多等原因。
401Unauthorized
未认证的请求,通常浏览器接受到这个状态值,就会弹出一个对话框,要求你输入密码。
500InternalServerError
服务器内部错误。
206PartialContent
部分的内容,是断点续传的标准返回码
<stream></stream>
本文详细解析了HTTP协议的基础工作原理,包括TCP连接管理、持久连接的特点及其与非持久连接的区别,同时介绍了HTTP请求与响应消息的格式及常见的状态码。

被折叠的 条评论
为什么被折叠?



