HTTP协议简介

1、HTTP(HyperText Transfer Protocol,超文本传输协议),是一个基于请求与相应,无状态的,应用的协议,常运行在TCP/IP协议传输数据。
2、HTTP报文格式
(1)、HTTP请求
HTTP协议简介_第1张图片
第一部分:
请求方式 | 空格 | 路径 | 空格 | 协议版本 |(请求行)
第二部分:
头部字段名 | : | 值

头部字段名 | : | 值 (请求头部)
第三部分:
空行(**不能缺少!!**表示头部结束)
第四部分:
请求正文(图中没有请求正文,且一般只有POST方式才有)
(2)、HTTP响应
HTTP协议简介_第2张图片
第一部分:
协议版本 | 空格 | 状态码 | 状态码描述 | (状态行)
第二部分:
头部字段名 | :| 值 |

头部字段名 | :| 值 | (响应头部)
第三部分:
空行(**不能缺少!!**表示头部结束)
第四部分:
响应正文
3、常有状态码
(1)、200:服务器已成功处理了请求并提供了请求的网页。
(2)、204: 服务器成功处理了请求,但没有返回任何内容。
(3)、301: 请求的网页已永久移动到新位置。当URLs发生变化时,使用301代码。搜索引擎索引中保存新的URL。
(4)、302: 请求的网页临时移动到新位置。搜索引擎索引中保存原来的URL。
(5)、304: 如果网页自请求者上次请求后没有更新,则用304代码告诉搜索引擎机器人,可节省带宽和开销。
(6)、400: 服务器不理解请求的语法。
(7)、403: 服务器拒绝请求。
(8)、404: 服务器找不到请求的网页。服务器上不存在的网页经常会返回此代码。
(9)、410 :请求的资源永久删除后,服务器返回此响应。该代码与 404(未找到)代码相似,但在资源以前存在而现在不存在的情况下,有时用来替代404 代码。如果资源已永久删除,应当使用 301 指定资源的新位置。
(10)、500 :服务器遇到错误,无法完成请求。
(11)、503: 服务器目前无法使用(由于超载或停机维护)。
4、 HTTP请求方法
1、OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘*’的请求来测试服务器的功能性
2、HEAD:向服务器索与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以再不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。
3、GET:向特定的资源发出请求。注意:GET方法不应当被用于产生“副作用”的操作中,例如在Web Application中,其中一个原因是GET可能会被网络蜘蛛等随意访问。Loadrunner中对应get请求函数:web_link和web_url
4、POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 Loadrunner中对应POST请求函数:web_submit_data,web_submit_form
5、PUT:向指定资源位置上传其最新内容
6、DELETE:请求服务器删除Request-URL所标识的资源
7、TRACE:回显服务器收到的请求,主要用于测试或诊断
8、CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
注意:大多数情况下,使用的是GET和HEAD/POST方法,并且这些方法区分大小写,当某个请求的资源不支持对应的请求方法的时候,服务器应当返回状态码405;当服务器不认识或者不支持对应的请求方法时,应返回状态码501。
5、HTTP头部字段
(1)、User-Agent:告诉网站服务器,访问者是通过什么工具来请求的;
(2)、X-Forwarded-For :用来表示HTTP请求端真实IP;
(3)、X-Forwarded-IP:同X-Forwarded-For;
(4)、Accept-Language:设置接受的语言;
(5)、Accept-Encoding:是浏览器发给服务器,声明浏览器支持的编码类型;
(6)、Content-Type 用于表明发送数据流的类型,服务器根据编码服务器根据编码类型使用特定的解析方式,获取数据流中的数据;
(7)、Cookie:辨认用户状态及身份的;
(8)、Referer :当浏览器向web服务器发送请求时,一般会带上Referer ,告诉服务器该网页是从哪个页面链接过来的。

你可能感兴趣的:(http)