一、协议版本
- HTTP1.0 :客户端的每次请求都与Web服务器建立一次TCP连接,服务器完成请求处理后立即断开连接,服务器不跟踪每个客户也不记录过去的请求
- HTTP1.1 :支持持续的连接,增加了持续连接、身份认证、状态管理、Cache缓存等机制相关的请求头和响应头
二、Http请求
1、请求包含的内容
- 请求行 : 描述请求的资源(格式: 请求方式[get/post] 资源路径 协议) GET /test/1.html HTTP/1.1
- 请求头 :
- 请求体 :请求体和请求头之间有一个空行
2、Get请求
- 将请求内容追加到URL之后
- URL的长度有限制(一般是1K)
3、Post请求
- 将请求内容放置在请求体中
4、常见请求头
- Accept : 浏览器通知服务器自己可以接收的数据类型
- Accept-charset :浏览器通知服务器自己所支持的字符集
- Accept-Encoding :浏览器通知服务器自己所支持的压缩格式
- Accept-Language :浏览器通知服务器自己所支持的语言环境
- Host :浏览器通知服务器自己访问服务器的主机名
- If-Modified-since :浏览器端缓存页面的最后修改时间一起发到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行比较
- Referer :浏览器通知服务器当前页面来自哪个页面(用于防盗链)
- user-agent :浏览器通知服务器自己的一些基本信息(浏览器内核、系统版本、浏览器版本等)
- Connection :是否保持连接状态(Keep-Alive、close)
- Date :浏览器通知服务器自己端的时间
三、Http响应
1、响应包含的内容
- 响应行 :协议 状态码 状态信息 HTTP1.1 200 ok
- 响应头
- 响应体 : 服务器响应浏览器的所有内容,与响应头之间有一个空行
2、状态码
- 1xx :服务器通知浏览器自己好没有处理完成
- 2xx :服务器通知浏览器自己已经处理完了
- 200 : 处理完成
- 3xx : 服务器通知浏览器自己还需要浏览器进一步处理来完成整个操作
- 302 : 重定向
- 304 : 当前资源没有修改,从缓存中取
- 4xx :服务器通知浏览器,浏览器发送数据有误
- 401 :没有权限
- 404 :找不到资源
- 5xx :服务器通知浏览器,服务器出现异常
- 500 :服务器异常
- 503 :服务器未响应
3、常见响应头
- location :重定向时的跳转方向
- Content-Encoding : 数据压缩格式
- Content-Length : 数据长度
- Content-Language : 语言环境
- Content-Type : 数据类型(例如:text/html;charset=utf-8)
- Last-Modified : 最后修改时间
- refresh :服务器通知浏览器定时刷新时间及URL
- Content-Disposition :文件下载(attachment;filename=a.jpg)