我正在使用 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/