查尔斯,具有非空响应主体的空请求主体

Charles, empty request body with non-empty response body

我用 Charles 记录了一个会话,当我检查其中一个会话时,我发现没有请求正文,但我可以看到响应正文,我对此感到困惑,因为我怎么看到没有响应的响应发送请求?

此外,我注意到我可以选择在 phone 的 Charles 上查看请求和响应正文,但在我的桌面 Charles 上,我只能看到名为 Content 的选项卡,我尝试点击“视图”选项卡下的请求和响应也没有任何反应。有谁知道为什么?

谢谢!

I am confused about this as how am I seeing a response without sending a request?

一个请求由几部分组成:

  • 始终:HTTP 方法(GET、POST 或类似方法)
  • 始终:路径 (/document/123)
  • 可选:任意数量的 HTTP headers (my-header: abc)
  • 可选:一个请求body

响应包括:

  • 始终:HTTP 状态 (404)
  • 始终(在 HTTP/1 中):HTTP 状态消息(未找到)
  • 可选:任意数量的 HTTP headers (my-header: abc)
  • 可选:回复body

在你的情况下,你正在发送一个请求,只是你的请求只包含一个方法,URL和headers,而没有body。 这完全正常,这对于大多数 HTTP 请求来说很常见。

请求和响应 body 是完全独立的:两者都没有 body 或只有一个(其中之一)有 body 都可以,或者两者都有 body.

例如,从浏览器到 https://google.com/search 的 GET 请求将包括一个方法 (GET) 和一个路径 (/search) 以及来自浏览器的 headers 选择(例如user-agent),但不会包含任何 body,响应将具有状态 (200) 和消息 (OK),headers 关于响应数据(例如 content-length: ...) 并且 body 将是 google 搜索页面的 HTML。