URL&HTTP协议详解

整理了网课的PPT和老师的知识要点笔记:

课程设计

URL:统一资源定位符,一般来说,一个URL由5个部分构成:

protocol,domain,port,path,URL parameters。

protocaol:协议,协议是指通信双方对于通信所采用的数据的组织格式,规程,含义等所做的一个约定。协议是分层的(参考OSI,TCP/IP),通常来说,接口测试中使用到的协议是位于应用层的协议。常见的协议有:http(HypeText Transfer Protocal)https(http+ssl),ftp,ssh,smtp,pop3,mysql,oracle等。

Domain:域名,是我们要访问的服务器的机器名,域名,ip地址等。有一些接口文档中没有给出域名,要根据测试环境的服务器来决定这个参数。

Port:端口号,在域名之后domain:port。端口号是由服务器(软件)来设置指定的,服务器就会去时刻不停地监听用户发送到指定端口的请求。如果服务器设定的端口和其所用的通信协议是默认的对应关系,则用户在使用url访问服务时,端口可以省略。端口好的范围为0-65535,一般自定义端口号使用10000以后的比较安全,不会和一些默认协议端口冲突。常见的协议以及对应的默认通信端口为:

http:80                 https:443/8443              ssh:22

ftp:21                   smtp:25                         pop3:110

mysql:3306         oracle:1521

path:是指端口之后的所有内容,path通常是指我们要访问的资源or服务在服务器的容器路径下的绝对地址。

url parameters:url地址参数,是以问好?作为链接符,拼接在path之后的,url地址参数采用键值对的方式,多个键值对之间使用&作为链接符。

注意:从协议的角度,url是没有长度限制,但是很多浏览器对url的长度作出了限制,所以不能把所有参数都放在url中,可以放在请求体中。

url的个组成部分

http协议:超文本传输协议,是BS应用中普遍使用的一种协议。目前来说,该协议因其本身的快速,灵活的特性,已经在很多领域得到广泛的应用。

特点:

1. http协议是一种基于request和response的协议

2. http协议是一种简单,灵活的协议,只需要指定方法,url即可实现访问。

3. http协议是一种无链接,快速的协议。

http的无链接是指短链接(信息头中的标识connection:close)从http1.1版本开始,默认已经变更为长链接(信息头中的标识connection:keep-alive)

短链接:一个tcp链接之上只能建立一个http链接,http链接关闭,则对应的tcp链接也会关闭。

长链接:一个tcp链接之上可以建立多个http链接,heep链接关闭,tcp链接不会关闭,直到收到关闭信号位置。

http2.0实现了多路复用,但还是基于tcp协议的。

http3.0计划将弃用tcp协议,使用udp协议。

4. http协议是一种无状态的协议,后引入了session和cookie机制来维持状态。


http request:http请求,通常包含三个部分:request line,request headers,request body。

requests的组成

request line:请求行,是指请求数据包中的第一行内容:

eg:GET /phpwind/  HTTP/1.1

request method请求方法+request path请求路径+ protocol协议/version协议版本

request method请求方法:如果没有指定,将使用默认的方法get

get和post:都是请求方法,都可以向服务器传递数据,区别在于,如果使用get方法发送数据,数据将组织在url地址参数中,使用post方法发送数据,数据将位于请求主体中。

post方法比get方法要安全,并不是因为参数的组织形式,而是因为post方法请求在客户端是不会缓存的,而get方法请求在客户端是会有缓存的。

request headers:请求头,是指从第二行开始到第一个空行截止的部分。请求头是客户端用于和服务器进行信息交互,控制的一个部分,通常来说和业务无关,请求头中的参数是键值对形式的,每对参数都是有特殊作用的。常见的请求头参数:

User-agent:是用来告知服务器,客户端的一些节本信息,服务器是通过该信息来识别客户端。通常来说session是和该信息头有关,建议全局统一。

content-type:如果请求主体有内容,则该信息头必须加上,是用于指定请求主体中参数的形式的。

cookie,auth,token:是和鉴权相关的信息。postman会自动管理和保存请求的cookie,而Jemeter需要添加自己添加cookie管理器来保存请求cookie。

http cookie管理器

在接口测试抓包时,还要关注accept-encoding参数,如果是gzip,表示接口回传的数据是压缩过的。接口测试的时候需要指定这个参数,不然发起的接口测试的压力和实际使用接口时会差别很大。

accept-encoding
request header

带上accept-encoding:gzip,deflate时,返回的数据大小是13277bytes

压缩返回数据大小

disable HTTP信息头管理器之后,返回数据的大小变成了54191byte:

不压缩的返回数据大小

如果是多语言的接口,还需要关注头文件中的Accept-Language。

request body:请求主体,是指从第一个空行之后的所有内容。通常来说请求主体就是我们的客户端所封装的数据。客户端封装数据的格式是由客户端(产品,接口)来决定的,我们只能遵循,不能自定义。

掌握http请求的构成和要点之后,就能够帮助我们去完成基本的接口脚本的封装。


http response:http响应,通常来说,http响应也是由三部分构成:response line,response header,response body。

response line:响应行,是指响应数据包的第一行。

eg:HTTP/1.1  200 OK

protocol/version +response code + response message

response code:响应状态码,是服务器用来告知客户端,服务器对请求的处理状态,这里的处理状态仅仅是从通信逻辑上的处理状态,而不是业务逻辑的处理状态。

响应状态码通常是由3位长度的数字构成,根据首位数字的不同,可以分为5类:

1**:表示链接建立过程中的通信,交互信息。

2**:表示服务器处理成功,典型的是200。

3**:表示重定向。

1**,2**,3**都表示客户端和服务器通信是成功的,但是最终业务是否正确,还是要根据对响应主体的检测才可以判断。

4**:表示客户端错误。404

5**:表示服务器错误。











websocket:简称ws协议,本质上是双方先使用http协议建立链接,然后再升级申请专属的tcp链接。

老师使用的抓包工具HttpWatch:

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,029评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,238评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,576评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,214评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,324评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,392评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,416评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,196评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,631评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,919评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,090评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,767评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,410评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,090评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,328评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,952评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,979评论 2 351

推荐阅读更多精彩内容