# 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 服务器不通,一段时间后可能会恢复