HTTP协议
HTTP协议是什么?
HTTP协议(HyperText Transfer Protocal,超文本传输协议)是互联网上应用最广的一种协议,是WWW(World Wide Web)实现数据通信的基石。
HTTP协议是应用层协议,基于TCP/IP协议来传输数据(HTML文件、图片文件、查询结果等等),所以HTTP协议采用请求/响应模型,由客户端向服务器发送请求, 服务器以一个状态行作为响应。
HTTP报文结构
HTTP有两种报文:
- 请求报文 ——从客户向服务器发送请求报文;
- 响应报文 ——从服务器到客户的回答。
请求报文和响应报文都是由三个部分组成的:
- 开始行:请求报文中称为请求行,响应报文中称为状态行;
- 首部行;
- 实体主体。
请求报文和响应报文的格式上的区别就在于首部行。
请求报文
Ⅰ 请求行
①请求方法
常见的请求方法有:
方法 | 含义 |
---|---|
GET | 请求获得URL所表示的资源 |
POST | 对URL所标识的资源的数据进行修改 |
PUT | 给指明的URL下储存一个资源 |
DELETE | 删除URL所表示的资源 |
OPTION | 请求一些选项信息 |
HEAD | 请求获得URL所表示的资源的头部 |
TRACE | 用来进行环回测试的请求报文 |
CONNECT | 用于代理服务器 |
②URL
URL统一资源定位符用来从互联网上得到资源的位置和访问这些资源的方法。
URL给资源的位置提供了一种抽象的识别方法,并用这种方法给资源定位。互联网的所有资源都有一个唯一确定的URL。
URL的格式为:
- 协议常用的有http,其次是ftp;
- 主机就是该主机在互联网中的域名;
- 端口和路径可以省略;
- 注意:URL中的字母是不区分大小写的。
③协议版本
HTTP协议的版本有:HTTP/1.0、HTTP/1.1、HTTP/2.0
Ⅱ 请求报文中的首部字段名常见的有:
Header | 含义 |
---|---|
Host | 接收请求的服务器的地址,可以是IP地址,亦可以是域名 |
User-Agent | 表明用户代理,及发送请求的应用是什么,比如火狐浏览器等 |
Collection | 指定与连接相关的属性 |
Accept-Charset | 通知服务器可以发送的编码格式 |
Accept-Encoding | 通知服务器可以发送的数据压缩格式 |
Accept-Language | 通知服务器可以发送的语言 |
响应报文
Ⅰ状态行
常见的状态码
在状态行中状态码有5大类:
- 1xx:表示通知消息,如请求收到了或正在进行处理;
- 2xx:表示成功;
- 3xx:表示重定向;
- 4xx:表示客户端请求错误;
- 5xx:表示服务器端错误。
状态码 | 含义 |
---|---|
200 | 响应成功 |
302 | 跳转、重定向 |
400 | 请求语法错误 |
403 | 服务器拒绝提供服务 |
404 | 请求资源不存在 |
500 | 服务器内部错误 |
Ⅱ 响应报文中的首部字段名常见的有: