HTTP简介

1. HTTP是什么?

HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准,通常,由HTTP客户端发起一个请求,创建一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,比如”HTTP/1.1 200 OK”,以及返回的内容,如请求的文件、错误消息、或者其它信息。



### 2. Request Header (请求头)

在chrome浏览器中打开百度,在网页空白处右键,选择Network,选中当前网址,点击Headers,如下图所示,我们就可以看到当前网页的请求信息。

QQ20160829-0

接下来我们点击Headers下面的Request Headers,展开请求头的内容,Request Headers再点击右边的view source切换显示模式,可以看到如下内容:

请求行:包含请求方法,请求资源路径,HTTP协议版本



1. GET / HTTP/1.1
请求头:
  1. Host: www.baidu.com 主机地址
  2. Connection: keep-alive 是否保持连接
  3. Cache-Control: max-age=0 缓存机制
  4. Upgrade-Insecure-Requests: 1
  5. User-Agent: Mozilla/5.0 … Chrome/52.0.2743.116 Safari/537.36 客户端类型,软件环境
  6. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8 客户端支持的数据类型
  7. Accept-Encoding: gzip, deflate, … 客户端支持的压缩格式
  8. Cookie: BAIDUID …

    请求体:客户端发送给服务端的数据,比如文件数据

3. Response Header(响应头)

状态行: 包含HTTP版本,状态码,状态英文描述



1. HTTP/1.1 200 OK

响应头:

  1. Server: nginx 服务器类型
  2. Content-Type: text/html; charset=UTF-8 服务器返回数据类型
  3. Transfer-Encoding: chunked 传输编码模式,chunked表示分块编码
  4. Connection: keep-alive 保持连接
  5. Keep-Alive: timeout=5 连接超时
  6. Vary: Accept-Encoding
  7. X-Powered-By: PHP/5.5.30
  8. Cache-Control: private, must-revalidate
  9. Date: Mon, 29 Aug 2016 08:01:52 GMT 响应的时间
  10. ETag: W/“95fb31cafa3507d01a7dc1f0e90c10cf”

    响应体:服务器返回给客户端的具体数据


    4. HTTP 1.1 与 1.0的连接问题

HTTP 1.1 支持长连接,1.0不支持长连接,响应结束后就会断开连接。