1、HTTP协议介绍
HTTP(HyperText Transfer Protocol,超文本传输协议):是互连网上应用最广泛的一种网络协议,是以ASCII码传输,建立在TCP/IP协议之上的应用层规范。是通过客户端发送一条请求消息,而后由服务器返回一条相应信息。
2、HTTP请求消息
客户端请求包括:请求行、请求头和请求体
① 请求行:由请求方法、URL和协议版本组成
② 请求头部:按照头部字段名、字段值的形式表示
③ 请求空行
④ 请求体(请求数据):表示要发送给服务端的数据。
2.1 请求行
请求方法 | 描述 |
---|---|
GET | 请求指定页面信息,并返回实体主体 |
POST | 向指定资源提交数据进行处理请求(提交表单、 上传文件),又可能导致新的资源的建立或原有资源的修改 |
OPTIONS | 返回服务器针对特定资源所支持的HTML请求方法或web服务器发送测试服务器功能(允许客户端查看服务器性能) |
PUT | 返回服务器针对特定资源所支持的HTML请求方法或web服务器发送测试服务器功能(允许客户端查看服务器性能) |
HEAD | 与服务器索与get请求一致的相应,响应体不会返回,获取包含在小消息头中的原信息(与get请求类似,返回的响应中没有具体内容,用于获取报 头) |
DELETE | 请求服务器删除request-URL所标示的资源(请求 服务器删除页面) |
TRACE | 回显服务器收到的请求,用于测试和诊断 |
CONNECT | HTTP/1.1协议中能够将连接改为管道方式的代理 服务器 |
2.2 请求头
头部字段 | 描述 |
---|---|
Host | 指定请求的服务器的域名和端口号 |
Content-Length | 请求内容长度 |
Accept | 指定客户端能够接收的内容类型 |
X-Forwarded-For | 用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段 |
User-Agent | 包含发出请求的用户信息 |
Content-Type | 请求的与实体对应的MIME信息 |
Origin | 指明当前请求来自于哪个站点 |
Referer | 当前请求的网页 |
Accept-Language | 浏览器可接受的语言 |
Accept-Encoding | 指定浏览器可支持的web服务器返回内容压缩编码的类型 |
Cookie | HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器 |
Connection | 表示是否需要持久连接 |
2.3 GET和POST
GET方法:请求的参数附加在URL中,意味着它们对用户和任何查看URL的人都是可见的。由于URL长度限制,数据量通常较小
POST:请求的参数包含在请求体中,不会显示在URL中,因此对于用户和其它旁观者来说不可见。不受URL长度限制,可以大量传输数据
3、HTTP响应消息
服务端响应包括:状态码、响应头部、响应空行、响应正文
3.1 状态行
状态 | 含义 |
---|---|
1XX | 提示信息,表示目前是协议处理的中间状态, 还有后续操作 |
200 OK | 客户端请求成功 |
302 Found | 服务器目前从不同位置的网页响应请求(url跳转) |
400 Bad Request | 客户端请求有语法错误,不能被服务器所理解 |
401 Unauthorized | 未授权 请求要求身份验证。对于需要登陆的网页,服务器可能返回此响应 |
403 Forbidden | 服务器收到请求,但是拒绝提供服务 |
404 Not Found | 请求资源不存在 |
500 Internal Server Error | 服务器发生不可预期的错误 |
503 Server Unavailable | 服务器目前无法使用(由于超载或者停机维护) |
3.2 响应头部
Header头部 | 解释 |
---|---|
Data | 原始服务器消息发出的时间 |
Server | web服务器软件名称 |
Content-Type | 返回内容的MIME类型 |
Set-Cookie | 设置和页面关联的Cookie |
Content-Length | 响应体的长度 |
ETag | 请求变量的实体标签的当前值,用于标识出资源的状态 |
refresh | 表示浏览器应该在多少时间之后刷新文档,以秒计 |
WWW-Authenticate | 表明客户端请求实体应该使用的授权方案 |
Allow | 服务器支持哪些请求方法 |
Content-Type | 返回内容的MIME类型 |
Location | 用来重定向接收方到非请求URL的位置来完成请求或标识新的资源 |