接口测试学习1:http协议

1.http协议的概念和特点

超文本传输协议。请求、响应协议,实现客户端和服务器之间的数据传输

特点:
1.一问一答(必须由客户端发起请求)
2.http协议无状态,无记忆功能(上一个请求和下一个请求无关联)

小知识:http和https协议的区别

  1. https协议 = http + SSL/TSL协议(安全协议)
  2. 端口不同:http-80 https-443
  3. http协议免费申请 https需要证书认证(更安全)

2.请求报文及响应报文格式

2.1 请求报文:请求行+请求头+空行+请求数据
  • 请求行:请求方式+url+协议/版本号
    如:CONNECT api.bilibili.com:443 HTTP/1.1

完整的url—— http或https:// ip地址.域名/ 接口路径地址

  • 请求头:通过键值对的方式进行存储
    如:
Host: api.bilibili.com:443
Connection: keep-alive
  • 空行
  • 请求数据(没有则为空行)
2.2 响应报文:响应行+响应头+空行+响应数据
  • 响应行:协议/版本号+状态码+返回信息
    如:HTTP/1.1 200 Connection Established

常见的状态码:详细见此文
1xx-信息状态 2xx-成功 3xx-重定向 4xx-客户端错误 5xx-服务器错误

  • 响应头:通过键值对的方式进行存储
    如:
FiddlerGateway: Direct
StartTime: 16:46:00.160
Connection: close
  • 空行
  • 响应数据(没有则为空行)

3.常见问题

问题一、 http的请求方法有哪些?其中get和post的区别?
答:GET,POST, HEAD, OPTIONS,PUT, DELETE, TRACE 和 CONNECT 方法。

get和post区别:

一般来说GET是获取数据,POST是提交数据的。但是因为GET和POST都是HTTP的方法,HTTP又是是基于TCP/IP的关于数据在万维网中 如何让通讯的协议。所以本质上来说GET和POST请求是没有区别 的,都是TCP链接。他们能做的事情是一样的。
GET传输数据的时候是在URL地址中的、对所有人都是是可见的、是不安全的、是有浏览器缓存记录的。所以说GET是不安全的,发送密码等数据的时候不要用GET传输。
GET只能传输ASCLL字符,不能进行编码。
POST传输的时候是放在HTTP的请求体之中的,并且是经过urlencode编码的所以是相对安全的。
POST是没有对数据类型的限制的,二进制数据也是可以的。
HTTP协议并没有对GET和POST的长度做限制,其实是浏览器限制了他们传输大小。
URL地址是有长度限制的,浏览器不同长度限制的具体数值也是不一样的。比如IE是2083字节。需要注意的是这些仅仅是URL地址栏的长度限制。
理论上来说POST的长度是没有限制的,但是受服务器的配置限制或者内存大小的限制,造成了实际开发中POST也是有数据长度的限制的。
问题二、http的状态码有哪些?
答:常用的状态码如——200:请求成功、302:重定向、403:服务器拒绝请求、404:服务器找不到请求的网页、503:服务不可用

问题三、http的请求头部有哪些?
请求头名称 作用
Host 主机IP地址或域名
User-Agent 客户端相关信息,如操作系统,浏览器等信息
Accept 指定客户端接收信息类型,如image/jpg等
Accept-Charset 客户端接收的字符集
Accept-Encoding 可接受的内容编码
Accept-Language 接收的语言
Authorization 客户端提供给服务器,进行权限认证的信息
Cookie 携带的Cookie信息
Referer 当前文档的URL, 防止盗链
Content-Type 实体头内容类型
Content-Length 数据长度
Cache-Control 缓存机制
Pragma 防止页面被缓存

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值