一、HTTP协议的特点:
- 简单快速: 每个资源是固定的URI
- 灵活:通过一个HTTP协议可以完成不同的数据类型的传输
- 无连接: 连接一次就会断开,不会保持连接
- 无状态 :客服端和服务端是两种身份,一次连接后就断开,下次再连接,服务端无法区分两次是否由同一客户端发起的请求
二、HTTP方法:
get:获取资源
post:传输资源
put:更新资源
delete:删除资源
head:获取报文首部
OPTIONS:
OPTIONS方法用于描述目标资源的通信选项。
TRACE:TRACE方法沿着到目标资源的路径执行一个消息环回测试。
CONNECT:CONNECT方法建立一个到由目标资源标识的服务器的隧道。
三、GET与POST的区别
四、HTTP报文格式
请求报文:请求行 --请求方法、HTTP版本、URL地址;请求头 --一些key-value值;空行--用于分隔请求头和请求体;请求体
响应报文:响应行 --HTTP协议版本号、响应返回状态码、响应描述;响应头、 响应体
五、HTTP状态码
1XX:指示信息--表示请求已接收到,继续处理
2XX:成功--表示请求已成功接收
3XX:重定向--要完成请求必须进行进一步的操作
4XX:客户端错误--请求有语法错误或无法实现
5XX:服务端错误--服务器未能实现合法的请求
206:常见于视频文件太大时,只返回一部分
301:永久重定向
302:临时重定向
304:未修改 (向服务器确认资源是否修改时,如果没有修改就会返回304)
cache-control:max-age=value:
1、max-age>0 时 直接从游览器缓存中 提取
2、max-age<=0 时 向server 发送http 请求确认 ,该资源是否有修改有的话返回200 ,未修改的话返回304.
在请求头里有:If-Modified-Since: Mon, 17 Aug 2015 01:53:41 GMT
在响应头里有:Last-Modified: Mon, 17 Aug 2015 01:53:41 GMT
两个时间一致,就会去缓存中加载资源
五、持久化和管线化
普通模式下,每发送一次HTTP请求,都会建立一个连接,完成后就断开连接
持久连接(HTTP1.1版本支持):当使用Keep-Alive(持久连接)时,当出现对服务端的后续请求时,Keep-Alive功能避免了建立或重新建立连接。
管线化:持久连接的情况下,所有请求一次性打包发送,所有响应也一次性打包返回。
参考文章:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Methods