URL&HTTP协议详解
本文来自公开课笔记,主要做知识的记录,谢谢!
·接口测试核心技术--URL&HTTP协议详解。
·URL:
统一资源定位符。
示例:
https://ke.qq.com/course/315793?tuin=15945f87
通常来说,一个URL通常由以下几个部分构成:协议、域名、端口、路径和URL地址参数。
·协议:
protocol,通常来说是URL中的第一部分(分号之前的部分)
所谓协议:
通信双方对于数据的格式、含义、规程等所做的约定。
常见的通信协议有:
http
https(http+ssl)
ssh
ftp
smtp
pop3
oracle
mysql
sql server
about
config
javascript
·域名:
domain/hostname。是指协议之后的部分,通常来说可以是服务器的虚拟域名,机器名,IP地址。
比如说:
www.baidu.com
192.168.2.212
localhost
127.0.0.1
xiaozhifei(机器名)
·端口:
port端口是跟在域名之后,格式为:
域名:端口
端口是由服务器来配置的,是用来监听客户端的请求的。
通常来说,如果服务器所使用的端口与其所采用的通信协议是默认的匹配关系的话,则客户端在请求时,是可以不用填写端口。
常见协议与其默认端口的对应关系如下:
http--80
ssl--443or8443
ssh-22
ftp-21
smtp-25
pop3-110
oracle:1521
mysql:3306
sql server:1433
·路径:
path,一般来说,表示要访问的资源在服务器的容器中所存储的位置。
示例:
/course/315793
·URL地址参数:
通常是以问号作为连接符,拼接在URL的path部分的最后。
本身的数据组织格式为键值对应格式:
key1=value1&key2=value2&...&keyN=valueN
PS:从广义的角度来说,URL地址参数本身也属于URL PATH的一部分。
·HTTP协议:
超文本传输协议。该协议分为两个部分:http request(请求部分),http response(响应部分).
·http request的构成:
一般来说,http请求是由三个部分构成:request line、request header、request body。
·request line:
请求行,通常来说就是请求数据包的第一行内容,包含以下信息:request method、request path、protocol/version
示例:GET /phpwind/ HTTP/1.1
·request method:
请求方法,常见的http的请求方法有get、post、put、patch、options、delete、trace、header等。
请求方法是由接口(开发)决定的。
PS:在工具or浏览器中,不指定方法的情况下,采用的就是get
。
get和post的区别:
·在协议层面,都是请求方法,都可以用来传递参数给服务器。
·在web(浏览器)中,使用get方法传递的参数会变成URL地址参数。使用post方法,则是在request body中。
·在浏览器中,URL地址的长度是有限制。
通常核心的,比较长的数据都会采用post方法进行传递。
·在浏览器中,通过get方法获取的数据会在本地缓存(cache),post方法获取的数据是不会在本地缓存的。
·request path:
即URL的path和URL地址参数部分。
·protocol/version:
协议和版本,要求请求和响应所使用的协议保持一致。
·request headers:
请求头,是指从第二行开始,到第一个空行结束的部分。
请求头一般表示客户端和服务器进行通信时所需要的一些控制和交互信息。
请求头是键值对应的,格式为: key:value
http协议规定了很多标准的请求头,代表特殊的通信含义和作用。
·User-Agent:
用来告知服务器,客户端的一些配置信息(硬件、系统层面),绝大多数情况下,服务器都是通过该信息头来识别用户来源。通常cookie的自动管理是和这个信息头有关的。
·Content-Type:
该信息头是用来告知服务器,所发送的请求主体(body)的数据组织格式。
常见的有:
application/x-www-form-urlencoded 一般是键值对的数据。key=value&key=value
一般来说,不指定Content-Type的情况下,默认就是application/x-www-form-urlencoded。
application/json 数据就是就json 格式
application/xml 数据就是就xml格式
multipart/form-data; boundary=xxx
混合表单格式,通常是用来实现上传或者包含上传操作的业务。可以实现多种数据格式混合传递的效果。
boundary是分隔符,比实际的分隔符要少两个下划线。
·Cookie:也是请求头的一部分。
·request body:
请求主体,是指请求包的第一个空行之后的所有内容。
请求主体的内容,数据组织格式等都和业务有关。
·http response:
http响应通常也是由三个部分构成:response line 、response header、response body。
·response line:
响应行,通常来说就是响应数据包的第一行内容,包含以下信息: protocol/version、response code、response message
示例:HTTP/1.1 200 OK
·response code:
响应代码,又叫状态码。是服务器用来告知客户端,服务器对于请求的处理状态的。一般来说,状态码是三位长度的数字构成,然后首位数字表示大的分类。
1xx:表示传输控制信息。
2xx:典型的就是200,表示服务器对于请求的处理是成功的。
PS:成功仅仅表示通信逻辑上的成功,并不代表业务的成功。
3xx:表示重定向操作
PS:通常来说,1xx、2xx、3xx都表示请求成功。
4xx:表示客户端错误。
5xx:表示服务器错误。
PS:通常来说,我们去做接口测试的时候,尤其是脚本开发和调试阶段,如果出现了4xx和5xx错误,基本上都是因为我们所封装的数据、方法有误导致。
·response message:
是接在响应代码之后的,是用来描述响应代码所表示的含义的。
·response header:
响应头,是指从响应包的第二行开始,到第一个空行截至的部分,通常包含服务器反馈给客户端的控制、交互信息。
格式、含义等都和请求头类似。
·response body:
响应主体。
·掌握http request,可以帮助我们去实现请求包的封装。
掌握http response,可以帮助我们去自动化的判断请求是否成功,或者实现数据的关联。
URL&HTTP协议详解的更多相关文章
- HTTP协议详解以及URL具体访问过程
1.简介 1.1.HTTP协议是什么? 即超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准.从 ...
- HTTP协议详解(转)
转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HTTP是一个属于应用层的面向对象的 ...
- HTTP协议详解
Author :Jeffrey 引言 HTTP 是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和 扩展. ...
- ASP.NET知识总结(3.HTTP协议详解)
引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...
- 接口测试之HTTP协议详解
引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...
- 计算机网络(12)-----HTTP协议详解
HTTP协议详解 http请求 http请求由三部分组成,分别是:请求行.消息报头.请求正文 (1)请求行 请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:Metho ...
- HTTP协议详解(真的很经典)
HTTP 是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和 扩展.目前在WWW中使用的是HTTP/1.0 ...
- HTTP协议详解--转载http://blog.csdn.net/gueter/article/details/1524447
引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...
- 关于http协议详解
Author :Jeffrey 引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前 ...
随机推荐
- 使用命令行连接远程DB2数据库
1. 打开命令窗口 win + r 输入 db2cmd 2. 首先在客户机上对远程节点进行编目 CATALOG TCPIP //编目一个TCP/IP节点NOD ...
- Program-Language
1. 主流编程语言 2. 编程语言分类 2.1 编译or解释 2.2 按照客观系统的描述可分为两类 2.3 按照编程范型可分为 3. 语言范式 Paradigm 4. 计算机语 ...
- java随记 2月16
1.a=a+b 等于 a+=b ,且a+=b隐含强制类型转换 2.^ 表示异或 两个二进制同号为假,异号为真 即 0^0=0,1^1=0,0^1=1 3.三元运算 布尔表达式 ?表达式 ...
- Spark技术学院-进去能学到啥?
Spark技术学院是什么? 主要是浪尖,前腾讯现阿里的大神一起搞的知识分享基地,旨在帮助大家由入门到精通spark,hbase,kafka大数据重要的框架,还有给入门小白指点入门方法,分享入门资料,对 ...
- .Net 经典案例
1.捕捉一只小可爱 using System; using System.Collections.Generic; using System.Linq; using System.Text; usin ...
- 1 —— js 语法回顾 —— 数据类型。流程控制。数组
一,数据类型 字符串 . 数值 .布尔. null . undefined . 对象 ( 数组 . 函数 function(){} . object) undefined 出现的情景 : (1)变 ...
- springboot#filter
_ Filter不能处理用户请求,也不能对客户端生成响应. 主要用于对HttpServletRequest 进行预处理,也可以对HttpServletResponse 进行后处理,是个典型的处理链.完 ...
- AS-PATH(路径属性)路由路径欺骗术
AS-PATH(路径属性)路由路径欺骗术: ①:抓取感兴趣流量——前缀与访问 ②:创建路由地图 ③:路由地图第一法则——permit 10 ④:在第一法则中,匹配(感兴趣流量) ⑤:设置 路径欺骗术— ...
- Power BI Desktop 安装环境
Power BI Desktop 环境 最低要求 Windows 7/Windows Server 2008 R2 或更高版本 .NET 4.5 Internet Explorer 9 或更高版本 内 ...
- 报错盲注之exp注入(double数值类型溢出原理详解)
首先感谢原文博主,在此致敬.本文转自:http://www.cnblogs.com/lcamry/articles/5509124.html Exp()为以 e 为底的对数函数:MySQL版本在 5. ...