HTTP协议(超文本传输协议)
简介
1.http协议是用于web服务器传输超文本到浏览器的传输协议
2.http协议是基于TCP/IP通信协议传递数据和建立连接
工作原理
1.http协议工作于C/S架构,浏览器通过url向服务器发送请求,服务器收到请求后,会返回响应到客户端
2.http默认端口80,可以进行更改
3.http是无连接协议,即每次连接只处理一个请求,服务器处理完请求且收到应答后,断开连接,可以减少传输时间
4.http是无状态协议,处理事务时不记忆,所以如果后续事务需要前面信息,需要重传。
5.http流程:
消息结构
1.http的客户端 (web浏览器)向服务端发送请求
2.http的服务端 (web服务器)向客户端返回响应
3.http是通过URI进行传输数据和建立连接
4.请求的结构包括
请求行
请求方法字段(GET/POST ) url字段(例:/data/info.html) HTTP协议版本(http1.0/http1.1)
请求头部 包含许多参数,比如说(常用):
Accept 浏览器允许的MIME类型
Referer 客户端声明从哪个资源访问服务器
User-Agent 包含发送请求的用户信息,浏览器类型
Content-Type 内容类型
Host 要访问的主机名
Connection 判断处理完请求是否继续连接
Cookie 客户机通过这个头可以向服务器带数据
空行 告诉服务器头部到此结束
请求数据 如果是GET,无数据 如果是POST,放入数据 数据间用&相连
如图:
5.响应的结构包括
响应行 包括http协议版本(同上) http状态码(成功是200,其余后面会写) 描述(例ok表示响应成功)
响应头 同请求头部
响应数据 返回对应数据,例:请求是html页面,返回就是html文档
如图:
请求方法
方法名 | 用途 |
---|---|
GET | 获取指定的页面信息,返回实体 |
HEAD | 与GET类似,但主要获取报头 |
POST | 向指定资源发送数据进行处理请求,请求包含在请求体中,POST请求可能会导致新的资源的建立和/或已有资源的修改。 |
DELETE | 请求服务器删掉指定页面 |
PUT | 向服务器发送数据并修改数据指定的内容 |
OPTIONS | 允许查看服务器性能 |
TRACE | 回显数据,用于测试 |
状态码
a.分类:
状态码 | 用途 |
---|---|
1** | 继续操作信息,服务器收到请求,需要请求者继续执行操作 |
2** | 成功,操作被收到并处理 |
3** | 重定向,需要进一步操作才能完成请求 |
4** | 客户端错误,可能是语法错误或发送请求错误 |
5** | 服务端错误,服务器处理请求错误 |
b.具体分类:
1系
101 | 服务器收到请求,需要请求者继续执行操作 |
---|---|
102 | 更换高版本http协议(http1.0转1.1) |
2系
200 | 成功,服务器收到请求并处理 |
---|---|
201 | 成功请求并创建了新的资源 |
202 | 请求成功。但返回的meta信息是一个副本 |
203 | 服务器已成功处理了请求,但返回的信息可能来自另一来源。 |
204 | 服务器成功处理了请求,但没有返回任何内容 |
205 | 服务器成功处理了请求,但没有返回任何内容。与 204 响应不同,此响应要求请求者重置文档视图 |
206 | 服务器处理部分GET请求 |
3系
300 | 请求资源包括多个位置,服务器提供操作列表供请求者选择 |
---|---|
301 | 永久重定向 资源被永久移动到新的uri,包括返回信息和请求使用新的uri |
302 | 临时重定向 资源临时移动到新的uri,访问时仍然为旧uri |
303 | 查看其它地址。与301类似。使用GET和POST请求查看 |
304 | 请求的资源未修改,不返回内容 |
305 | 使用代理访问请求网页 |
307 | 临时重定向。与302类似。使用GET请求重定向 |
4系
400 | 语法错误 |
---|---|
401 | 需要身份验证 |
403 | 资源不可用 |
404 | 找不到资源 |
405 | 请求方法对资源不可用 |
406 | 资源已找到,但MIME类型与Accept请求头指定的不符 |
407 | 需要代理服务器授权 |
408 | 在服务器许可的等待时间内,客户一直没有发出任何请求。客户可以在以后重复同一请求。 |
409 | 请求与资源状态冲突 |
410 | 服务器无法重定向 |
411 | 请求中无Content-Length头 |
412 | 文档太大,服务器需要Retry-enter头 |
414 | URI太长 |
5系
500 | 服务器出状况 |
---|---|
501 | 服务器不支持请求中的某功能 |
502 | 服务器返回非法应答 |
503 | 服务器未应答 |
504 | 能及时地从远程服务器获得应答 |
505 | 服务器不支持http版本 |