# http协议
http(Hypertext transfer protocol):超文本传输协议,通过浏览器和服务器进行数据交互,进行超文本( 文本、图片、视频等)传输的规定。
- http协议规定了超文本传输所要遵守的规则
http协议的特点:
http协议是无状态的
每次的http请求都是独立的,不相关的,所以需要引入session和cookie来关联相关请求多次http协议请求
http请求资源并不是一次请求就能成功的,页面上引用了其他资源的话也会自动发送http请求这些资源,现在的http版本支持 管道机制,可以同时请求和相应多个http请求,大大提高了效率基于TCP协议
http底层是基于TCP实现的,现在的http版本默认支持持久连接,即多次http请求使用一个TCP连接
# http请求方法
概述:
方法 | 说明 | 支持的HTTP协议版本 |
---|---|---|
GET | 获取资源 | 1.0、1.1 |
POST | 传输实体主体 | 1.0、1.1 |
PUT | 传输文件 | 1.0、1.1 |
HEAD | 获取报文首部 | 1.0、1.1 |
DELETE | 删除文件 | 1.0、1.1 |
OPTIONS | 询问支持的方法 | 1.1 |
TRACE | 追踪路径 | 1.1 |
CONNECT | 要求适应隧道协议连接代理 | 1.1 |
GET:请求资源
- GET方法用来请求已被URL识别的资源,也就是服务器处理请求之后的响应内容
POST:传输实体主体
- GET也可以用于传输,但是一般不用,GET的目的是获取,POST的目的是传输
PUT:传输文件
- 类似FTP协议,文件内容包含在请求报文的实体中,然后请求保存到URL指定的服务器位置
DELETE:删除文件
- 与PUT相反,要求删除URL指定的资源
HEAD:获取报文首部
- 类似于GET,但是不要求返回数据,用于确认URL的有效性和资源更新时间
OPTIONS:询问支持的方法
- 用于询问服务器支持的方法(有些服务器可能会禁止掉一些方法,DELETE、PUT等)
TRACE:追踪路径
- 让WEB服务器将之前的请求通信环回给客户端的方法;它回应收到的请求, 以便客户看到中间服务器进行了那些进度或增量
CONNECT:要求用隧道协议连接代理
- 要求在与代理服务器通信时建立隧道,实现隧道协议进行TCP通信。主要使用SSL/TLS协议对通信内容加密后传输
# http响应状态码
这里只列出一些常见的状态码:
状态码 | 含义 |
---|---|
2xx | 成功 |
200 | ok 请求成功 |
3xx | 重定向 |
304 | 请求的网页未修改过,服务器不返回网页内容 |
4xx | 请求错误 |
400 | 客户端语法有错误,服务器未能理解 |
401 | 请求未经授权 |
403 | 收到请求,但是服务器拒绝提供服务 |
404 | 请求资源不存在 |
5xx | 服务器错误 |
500 | 服务器发了不可预期的错误 |
503 | 服务器不通,一段时间后可能会恢复 |
HTTP进化史 →