1. HTTP是什么?
HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准,通常,由HTTP客户端发起一个请求,创建一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,比如"HTTP/1.1 200 OK",以及返回的内容,如请求的文件、错误消息、或者其它信息。
2. Request Header (请求头)
在chrome浏览器中打开百度,在网页空白处右键,选择Network,选中当前网址,点击Headers,如下图所示,我们就可以看到当前网页的请求信息。
接下来我们点击Headers下面的Request Headers,展开请求头的内容,Request Headers再点击右边的view source切换显示模式,可以看到如下内容:
请求行:包含请求方法,请求资源路径,HTTP协议版本
GET / HTTP/1.1
请求头:
Host:www.baidu.com 主机地址
Connection: keep-alive 是否保持连接
Cache-Control: max-age=0 缓存机制
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 ... Chrome/52.0.2743.116 Safari/537.36 客户端类型,软件环境
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 客户端支持的数据类型
Accept-Encoding: gzip, deflate, ... 客户端支持的压缩格式
Cookie: BAIDUID …
请求体:客户端发送给服务端的数据,比如文件数据
3. Response Header(响应头)
状态行: 包含HTTP版本,状态码,状态英文描述
HTTP/1.1 200 OK
响应头:
Server: nginx 服务器类型
Content-Type: text/html; charset=UTF-8 服务器返回数据类型
Transfer-Encoding: chunked 传输编码模式,chunked表示分块编码
Connection: keep-alive 保持连接
Keep-Alive: timeout=5 连接超时
Vary: Accept-Encoding
X-Powered-By: PHP/5.5.30
Cache-Control: private, must-revalidate
Date: Mon, 29 Aug 2016 08:01:52 GMT 响应的时间
ETag: W/"95fb31cafa3507d01a7dc1f0e90c10cf"
响应体:服务器返回给客户端的具体数据
4. HTTP 1.1 与 1.0的连接问题
HTTP 1.1 支持长连接,1.0不支持长连接,响应结束后就会断开连接。