Selenium_博客已迁移Selenium的自学之路自动化测试

Python接口自动化框架从0到1-03:HTTP协议

2018-04-10  本文已影响30人  路由心定

Python接口自动化框架从0到1-03:HTTP协议


HTTP(Hyper Text Transfer Protocol)(超文本传输协议),基于TCP/IP通信协议传输数据;HTTP属于应用层面向对象对象协议;
HTTP协议工作于客户端-服务端(浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息)如下图:


2964446-5a35e17f298a48e1.jpg

1. HTTP的URL

URL (UniformResourceLocator)是一种特殊的URI(Uniform Resource Identifiers,资源标识符)

http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name

协议部分:上面URL的协议是HTTP,此外还有FTP等协议
域名部分:域名为www.aspxfans.com,也可以把IP当做域名
端口部分:一般冒号后边为端口,和域名之间以分割,如果不写,则使用默认端口
虚拟目录部分:从域名后的第一个/到最后一个/为虚拟目录,上面URL的虚拟目录为/news/
文件名部分:

URL地址中有:从文件名的最后一个/为止是文件名部分
没有?:从文件名的最后一个/#为止是文件名部分
没有?#:从文件名的最后一个/到结束是文件名部分

锚部分:从#开始到最后,都是锚部分,上面URL地址锚部分为:name
参数部分:从开始到#为止之间的部分为参数部分,又称搜索部分、查询部分

2. URL与URI的区别

URI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源
URL是uniform resource locator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。

3. HTTP之Request(见下图)

11.png

3.1 get请求

GET /562f25980001b1b106000338.jpg HTTP/1.1
Host    img.mukewang.com
User-Agent    Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36
Accept    image/webp,image/*,*/*;q=0.8
Referer    http://www.imooc.com/
Accept-Encoding    gzip, deflate, sdch
Accept-Language    zh-CN,zh;q=0.8

第一部分:请求行,用来说明请求类型,要访问的资源以及所使用的HTTP版本(GET说明请求类型为GET,[/562f25980001b1b106000338.jpg]为要访问的资源,该行的最后一部分说明使用的是HTTP1.1版本)
第二部分:请求头部,紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息(从第二行起为请求头部,HOST将指出请求的目的地.User-Agent,服务器端和客户端脚本都能访问它,它是浏览器类型检测逻辑的重要基础.该信息由你的浏览器来定义,并且在每个请求中自动发送等等)
第三部分:空行,请求头部后面的空行是必须的(即使第四部分的请求数据为空,也必须有空行)
第四部分:请求数据也叫主体,可以添加任意的其他数据。(这个例子的请求数据为空)

3.2 post请求

POST / HTTP1.1
Host:www.wrox.com
User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Content-Type:application/x-www-form-urlencoded
Content-Length:40
Connection: Keep-Alive

name=Professional%20Ajax&publisher=Wiley

第一部分:请求行,第一行明了是post请求,以及http1.1版本。
第二部分:请求头部,第二行至第六行。
第三部分:空行,第七行的空行。
第四部分:请求数据,第八行。

3.3 post请求与get请求的区别

请求提交时:get请求部分直接附加在URL中,post请求放在body中
数据大小:get请求直接把请求内容放在URL中,所以请求量与Post相比较小
安全性:POST > GET

HTTP常用状态码:

200 OK --客户端请求成功
400 Bad Request --客户端请求有语法错误,不能被服务器所理解
401 Unauthorized --请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
403 Forbidden --服务器收到请求,但是拒绝提供服务
404 Not Found --请求资源不存在,eg:输入了错误的URL
500 Internal Server Error --服务器发生不可预期的错误
503 Server Unavailable --服务器当前不能处理客户端的请求,一段时间后可能恢复正常

上一篇下一篇

猜你喜欢

热点阅读