HTTP通信机制是在一次 完整的HTTP 通信 过程 中 ,WEB浏览器 与 WEB 服务器 将完成 下列 七个步骤:
在HTTP开始工作之前,web浏览器 首先 要通过 网络 与 web 服务器 建立连接 ,该连接 是通过 TCP 来完成的,TCP协议 与 IP协议 共同 构建 Internet,即著名的TCP/IP协议族,因此Internet又被称为是 TCP/IP网络。HTTP 是比 TCP更高层次的 应用层 协议,根据 规则 ,只有底层协议建立成功之后,才能进行更高层协议的连接。因此,首先要建立TCP连接,一般TCP连接的端口号是80
一旦建立了TCP连接,web浏览器就会向web服务器发送请求命令,例如:GET/sample/hello.jsp HTTP/1.1。
浏览器发送请求命令之后,还要以头信息的形式向 服务器发送 一些别的信息,之后浏览器会通过发送一空白行 来通知 服务器,它已经结束了该 头消息 的发送。
客户端向服务器发送请求后, 服务器会向客户端回送应答 ,HTTP/1.1 200 OK,应答的第一部分 是 协议的版本号 和 应答状态
如同客户端 会随同 请求 发送关于自身的信息一样,服务器也会随同应答向用户发送关于它自己的数据及被请求的文档,也会以一个空白行来结束应答头信息的发送。
紧接着就会按照 刚才发送给浏览器的应答头中 Content-Type 描述的数据格式 发送用户所请求的实际数据。
1. 请求方法(GET\POST)、URL 、协议/版本
2. 请求头(Request Header)
3. 请求正文
下面截取一个请求头的信息,方便理解:
l Content-Type:在请求头中,表示后面的文档属于什么MIME类型。在响应头中,是非常重要的内容,原则上说浏览器会根据 content—type来决定如何显示返回消息的主体内容。
l Host:指定请求资源的Interenet主机号和 端口号,必须表示请求url的原始服务器或者网关位置
l Accept:浏览器可以接受的MIME类型
l ACCEPT-Charset:浏览器可接受的字符集
l Accept-Encoding:浏览器能够进行编码的数据编码方式,比如gzip,servlert能够向支持gzip的浏览器返回经gzip编码的HTML页面,许多情形下可以减少5-10倍的下载时 间。
l Accept-Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本的时要用到
l Connection:表示是否需要持久连接
l Connection-Length:表示请求消息的正文长度
l Cookie:重要的请求头信息之一
l User-Agent:浏览器的类型
常见的MIME类型:
text/html : HTML格式text/plain :纯文本格式 text/xml : XML格式image/gif :gif图片格式 image/jpeg :jpg图片格式 image/png:png图片格式以application开头的媒体格式类型:
application/xhtml+xml :XHTML格式 application/xml : XML数据格式 application/atom+xml :Atom XML聚合格式 application/json : JSON数据格式 application/pdf :pdf格式 application/msword : Word文档格式 application/octet-stream : 二进制流数据(如常见的文件下载) application/x-www-form-urlencoded : <form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)另外一种常见的媒体格式是上传文件之时使用的:
multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式