您的位置:首页 > 理论基础 > 计算机网络

接口测试教程(2)-HTTP简介与请求

2018-09-11 20:21 232 查看

什么是HTTP
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。

技术框架
HTTP是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。(我们称这个客户端)叫用户代理(user agent)。应答的服务器上存储着(一些)资源,比如HTML文件和图像。(我们称)这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在
http和其他几种网络协议
http和其他几种网络协议 [1]
多个中间层,比如代理,网关,或者隧道(tunnels)。尽管TCP/IP协议是互联网上最流行的应用,HTTP协议并没有规定必须使用它和(基于)它支持的层。 事实上,HTTP可以在任何其他互联网协议上,或者在其他网络上实现。HTTP只假定(其下层协议提供)可靠的传输,任何能够提供这种保证的协议都可以被其使用。
通常,由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个状态行,比如”HTTP/1.1 200 OK”,和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。
HTTP协议的网页
HTTP协议的网页
HTTP使用TCP而不是UDP的原因在于(打开)一个网页必须传送很多数据,而TCP协议提供传输控制,按顺序组织数据,和错误纠正。
通过HTTP或者HTTPS协议请求的资源由统一资源标示符(Uniform Resource Identifiers)(或者,更准确一些,URLs)来标识。

超文本
超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本。超文本更是一种用户界面范式,用以显示文本及与文本之间相关的内容。现时超文本普遍以电子文档方式存在,其中的文字包含有可以链结到其他位置或者文档的连结,允许从当前阅读位置直接切换到超文本连结所指向的位置。超文本的格式有很多,目前最常使用的是超文本标记语言(标准通用标记语言下的一个应用)及富文本格式。
右击网页查看源代码就是超文本。

URL
统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。每个独立的网站都有一个独立的地址比如www.baidu.com

HTTP功能
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。

HTTP特点
无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接,采用这种方式可以节省传输时间。(当今多数服务器支持Keep-Alive功能,使用服务器支持长连接,解决无连接的问题)

无状态:无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。即客户端发送HTTP请求后,服务器根据请求,会给我们发送数据,发送完后,不会记录信息。(使用cookie机制可以保持session,解决无状态的问题)

媒体独立:只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-Type来传输。

HTTP与HTTPS

HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。

HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

HTTP与HTTPS有什么区别?

HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。

简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

HTTPS和HTTP的区别主要如下:

1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

HTTP请求
在浏览器输入百度首页的地址:www.baidu.com,输入之后浏览器会给我们打开百度首页。实际上这个过程是浏览器向网站所在的服务器发送了一个 R eq uest ,即请求,网站服务器接收到这个 Request 之后进行处理和解析,然后返回对应的一个 R es ponse ,即响应,然后传回给浏览器, Response 里面就包含了页面的源代码等内容,浏览器再对其进行解析便将网页呈现了出来。

Request
即请求,由客户端向服务端发出。可以 1 等 Request 划分为四部分内容 ·
Request Method :请求方式 ·
Request URL :请求链接
Request Headers:请求头
Request body:请求体

Request Method 请求方式.
请求方式常见的有两种类型, GET 扣 POST。
.Get用于信息获取.而且应该是安全的和冥等的(冥等的惫思就是一个操作不会修改状态信息,并且每次澡作的时候都返回同样的结果.)从发送请求的角度, GET 请求相当于我们在数据库中做了查询的操作,这样的操作摄作不影响数据库本身的数据
.POST 衷示可能会修改服务器上资源的谓求.也相当于在数据库中做了修改的澡作.会影响数据库本身的翔居 〔 比如注册了账户,发了帖子.做了评论.得到了积分等.这种情况下.资源状态被改变了)。

案例 1 ― 在浏览器输入:https://www.baidu.com/s?wd=appium并回车,这个其实就是在百度搜索appium这个关健词。 URL中包含了请求的参数信息.这里参救wd就是要搜索的关键字.在浏览器可以看到Query String Parameters选项就是请求的参数.发起一次get请求时.参数会以url string形式进行传递。即?后的字符串则为其请求参数,并以&作为分隔符。
案例 2 - POST请求
一般来说.网站登录验证的时候.需要提交用户名密码.这里包含了敏感信息,使用 GET 方式请求的话密码就会展布在 URL 里面.造成密码泄露.所以这里最好以 pOST 方式发送。文件的上传时.由于文件内容比较大,也会选用 posT 方式比如百度账户登录如下图所示

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: