参考链接:
(建议精读)HTTP灵魂之问,巩固你的 HTTP 知识体系
前端基础篇之HTTP协议
HTTP 报文结构
起始行 + 头部 + 空行 + 实体
HTTP请求
请求行
包含请求方法,请求URI和http版本。
请求方法
- GET,请求访问已被URI识别的资源,请求不需要实体主体。
- POST,传输实体主体。
- PUT,传输文件,本身无验证机制,存在安全问题。
- DELETE,删除文件,与PUT相反的方法,也无验证机制。
- HEAD,HEAD方法和GET方法一样用于获取资源,只是HEAD方法的请求不返回报文的主体部分。
- OPTIONS,用来查询针对请求URI指定的资源支持的方法(GET?POST?等)。
- TRACE,让web服务器端将之前的请求通信返回给客户端的方法,用于追踪路径,请求在各个代理服务器之间中转最终到达目标服务器,在中转时请求可能会被篡改。
- CONNECT,要求用隧道协议连接代理,主要使用SSL和TLS协议把通信内容加密后经网络隧道传输。
请求头
Accept-Language
通知服务器客户端可以处理的语言集以及相对优先级Accept-Encoding
优先的内容编码Authorization
用于高速服务区客户端的认证信息。通常在接收到服务器返回的401状态码后,客户端将Authorization加入请求中User-Agent
创建请求的浏览器名称等信息
HTTP响应
响应行
返回状态码,原因短语和http版本。
状态码
1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
304(Not Modified): 资源未发生变动,一般浏览器会使用已经缓存过的资源
4xx:客户端错误--请求有语法错误或请求无法实现
401(UNauthorized): 第一次返回表示需要认证,第二次则是表示认证失败
403(Forbidden): 请求资源的访问被服务器拒绝
404(Not Found): 服务器上不存在请求的资源
5xx:服务器端错误--服务器未能实现合法的请求
500: 服务器内部处理异常
503: 服务器暂时处于超负荷或者正在进行停机维护,无法处理请求
504: 网关超时
响应头
Transfer-Encoding
规定传输报文主体时采用的编码方式Content-Type
发送给接收者的实体正文的媒体类型
- 指示资源的mime类型,默认text/html
- 普通文本: ‘text/plain, charset=utf-8’ ,编码针对字符
- 图片:‘text/image’,不需要指定编码
Content-Lenght
实体正文的长度
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。