接口测试学习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 防止页面被缓存

posted @   鲁自清  阅读(14)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示