接口测试——HTTP、状态码、Headers

1.HTTP方法

HTTP协议定义了几种请求方法(也成为“动作”或“动词”),每个方法代表了客户端与服务器交互的一种特定方式。

  • GET(获取资源):用于请求从服务器获取资源。例如,获取一个网页的内容、查询数据库中的记录等。GET请求不应在服务器上产生任何副作用,即它应该是幂等和安全的。

  • POST(创建资源):用于向服务器发送数据以创建新的资源。例如,提交表单数据,上传文件等。POST请求不是幂等的,意味着每次请求可能会有不同的结果。

  • PUT(更新资源):通过用于更新已存在的资源,也可以用于创建资源,但前提是服务器允许这么做。PUT请求时幂等的,多次执行相同的PUT请求将产生相同的结果。

  • PATCH(更新资源):用于对资源进行部分修改。与PUT不同的是,PATCH只需要包含需要更改的部分信息,而不是整个资源的信息。

  • DELETE(删除资源):用于请求服务器删除指定的资源。同样,DELETE请求也是幂等的。


2.状态码

HTTP状态码是由服务器返回给客户端的相应代码,用来指示请求处理的结果,他们被分为五类:

  • 1xx(信息性):表示请求已被接收,继续处理。

    • 100 Continue:客户端应继续其请求。这表明服务器已收到请求头并且客户端应继续发送请求体。

    • 101 Switching Protocols:服务器理解了客户端的请求,并将通过升级协议的方式进行响应。

  • 2xx(成功):表示请求已被成功接收、理解和接受。例如,200 OK 表示请求成功。

    • 200 OK:标准的成功响应。服务器成功处理了请求,通常伴随着请求的数据或资源。

    • 201 Created:请求成功且服务器创建了一个新的资源。通常在POST请求之后返回,指示新资源的URI。

    • 204 No Content:请求成功处理,但没有返回任何内容。通常用于更新操作,客户端无需刷新页面。

  • 3xx(重定向):为了完成请求,客户端需要进一步操作。例如,302 Found 指示资源临时移动到了另一个位置。

    • 301 Moved Permanently:所请求的资源已经永久移动到新位置,并且将来对这个资源的引用都应该使用本响应返回的新的URI。

    • 302 Found:与301类似,但它是临时性的重定向。客户端应该继续使用原URL来访问资源。

    • 304 Not Modified:如果客户端执行的是条件GET请求,并且自上次请求以来资源未更改,则服务器返回此状态码,告知客户端可以使用本地缓存的版本。

  • 4xx(客户端错误):请求包含语法错误或无法根据请求的内容完成。

    • 400 Bad Request:服务器无法理解请求的格式,客户端应当修改请求后再试。

    • 401 Unauthorized:当前请求需要用户验证。通常是由于缺少正确的认证凭证(如用户名和密码)。

    • 403 Forbidden:服务器理解请求但拒绝执行。与401不同,授权不会有所帮助。

    • 404 Not Found:服务器找不到对应于请求URI的任何东西。

    • 429 Too Many Requests:用户在给定的时间内发送了太多请求。旨在防止滥用。

  • 5xx(服务器错误):服务器在处理请求时遇到意外情况,未能完成请求。

    • 500 Internal Server Error:通用错误消息,表示服务器遇到意外情况,阻止它完成请求。

    • 501 Not Implemented:服务器不具备完成请求的功能。例如,服务器既不识别未知请求方法也不能提供对应的资源。

    • 502 Bad Gateway:作为网关或代理角色的服务器从上游服务器收到了无效响应。

    • 503 Service Unavailable:服务器暂时不可用(可能是过载或维护)。通常这是一个临时状态。

    • 504 Gateway Timeout:作为网关或代理角色的服务器未能及时从上游服务器获得响应。


3.Headers

HTTP请求和响应中的Headers(头部)是非常重要的组成部分,他提供了关于请求或相应的原信息,通过Headers,客户端和服务器可以交换额外的信息,比如认证凭证、内容类型、缓存控制等。

Headers的基本结构

Headers是键值对(Key-Value Pair)形式存在的,每个HEaders占一行:

Headers-Namw: Headers-Value

例如:

Content-Type:application/json
Authorization: Bearer your_token_here
Accept: application/json

多个Headers之间用换行分隔

常见的Headers分类

根据用途不同,Headers可以分为以下几类:

1.通用头(General Headers)

适用于整个消息(请求或响应),但不作用于内容本身。

  • Cache-Contorl:指定缓存机制的行为

  • Connection:控制是否保持网络连接(如keep-alive)

  • Date:发送消息的时间戳

  • Via:中间代理服务器的信息

2.请求头(Request Headers)

仅用于请求中,提供客户端希望获取资源的方式或自身的信息

Headers名称说明
Host请求的目标主机名和端口号(必须)
User-Agent客户端标识(浏览器、Postman等)
Accept告诉服务器能接受的内容类型(如JSON、HTML)
Accept-Language告诉服务器首选语言(如en-US)
Authoeization认证信息(如Bearer Token、Basic Auth)
Content-Type请求体的数据格式(如application/json)
Content-Length请求体的大小(字节数)

3.响应头(Response Headers)

仅用于响应中,提供服务器返回数据的附加信息

Headers名称说明
Server服务器软件名称
Set-Cookie设置Cookie共客户端存储
Content-Type返回内容的MIME类型(如text/html,applicetion/json)
Content-Length返回内容的长度(字节)
Location指示新创建资源的位置,常用于重定向(如302)
WWW-Authenticate当返回401时,告知客户端需要哪种认证方式

4.实体头(Entity Headers)

描述实体主体(Body)的元信息,适用于请求和相应。

Header 名称说明
Content-Type数据类型(如 application/json
Content-Length内容长度(字节)
Content-Encoding内容编码方式(如 gzip)
Last-Modified资源最后修改时间
Expires缓存过期时间

常用 Headers 示例

请求中常见 Headers:

GET /api/users HTTP/1.1
Host: example.com
User-Agent: PostmanRuntime/7.29.2
Accept: */*
Authorization: Bearer abc123xyz
Accept-Encoding: gzip, deflate, br
Connection: keep-alive

响应中常见 Headers:

HTTP/1.1 200 OK
Date: Thu, 26 Jun 2025 02:48:00 GMT
Content-Type: application/json
Content-Length: 1234
Server: Apache
Set-Cookie: sessionid=abc123; Path=/

在 Postman 中如何设置 Headers

在 Postman 中,你可以手动添加、修改 Headers:

  1. 打开 Postman 请求窗口。

  2. 在请求方法(GET、POST 等)下方找到 Headers 标签。

  3. 添加 Key 和 Value,例如:

    • Key: Content-Type

    • Value: application/json

  4. Postman 会自动帮你设置一些默认 Headers(如 User-Agent)。

注意:如果你在 Body 中选择了 raw 并选择 JSON 格式,Postman 会自动为你添加 Content-Type: application/json


Headers 的常见用途

场景使用的 Headers
发送 JSON 数据Content-Type: application/json
接收 JSON 数据Accept: application/json
用户认证Authorization: Bearer <token>Authorization: Basic base64encode(username:password)
文件上传Content-Type: multipart/form-data
自定义请求来源X-Requested-With: XMLHttpRequest
防止重复提交If-Match, If-None-Match
控制缓存Cache-Control, ETag

总结

类型描述常见 Header
通用头整个请求/响应相关Cache-Control, Connection
请求头客户端向服务器发送的附加信息Accept, Authorization, Content-Type
响应头服务器返回的附加信息Server, Set-Cookie, Location
实体头关于实体内容的信息Content-Type, Content-Length
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值