delphi - HTTP 100 继续响应 可以有消息体吗?

标签 delphi http response

我正在使用 Synapse 库在 Delphi 6 中编写 HTTP 代理。

我知道常规响应具有以下语法:

  • A Status-line
  • Zero or more header (General|Response|Entity) fields followed by CRLF
  • An empty line indicating the end of the header fields
  • Optionally a message-body

但是 100 Continue 不是一个常规的,它只是一个告诉客户端继续的交互响应,并且必须跟在一个最终的常规响应之后。

那么,我是否应该期待 100 Continue 响应中的正文?

最佳答案

不,1xx 状态响应不能有正文。参见 http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p1-messaging-26.html#rfc.section.3.3.p.5 :

“响应中消息体的存在取决于它响应的请求方法和响应状态代码(第 3.1.2 节)。对 HEAD 请求方法的响应([第 2 部分的第 4.3.2 节) ]) 从不包含消息正文,因为相关的响应头字段(例如,传输编码、内容长度等)如果存在,仅指示如果请求方法为 GET(第 4.3 节),它们的值将是什么。 [Part2] 的 1). 2xx (Successful) 对 CONNECT 请求方法的响应([Part2] 的第 4.3.6 节)切换到隧道模式而不是消息体。所有 1xx(信息),204(无内容),和 304(未修改)响应不包含消息正文。所有其他响应都包含消息正文,尽管正文的长度可能为零。”

关于delphi - HTTP 100 继续响应 可以有消息体吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23626619/

相关文章:

delphi - 将 FPC .o 文件链接到 Delphi

android - 应用程序没有响应 - Delphi XE6 - Android

delphi - 以其他形式使用声明的公共(public)变量时的编译器错误

laravel - Laravel 中返​​回 ResourceCollection 时如何返回 HTTP 状态代码

ios - ASIHTTPRequest 响应数据 null

delphi - 打开网络共享上的 Firebird 数据库文件

http - 截击 body 400错误

http - 如何使用 net/http 打破 go 中的分块?

python - 使用 python 3.8 使用 aiohttp 从服务器发出空回复

bash - 在环境变量中捕获 curl header 和响应