一、HTTP协议的特点:

  • 简单快速: 每个资源是固定的URI
  • 灵活:通过一个HTTP协议可以完成不同的数据类型的传输
  • 无连接: 连接一次就会断开,不会保持连接
  • 无状态 :客服端和服务端是两种身份,一次连接后就断开,下次再连接,服务端无法区分两次是否由同一客户端发起的请求

二、HTTP方法:

get:获取资源

post:传输资源

put:更新资源

delete:删除资源

head:获取报文首部

OPTIONSOPTIONS方法用于描述目标资源的通信选项。

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