http header 末尾是否包含零?
Does http header include zero at the end?
假设这是 http header:
Content-length: 67728\r\n
Content-type: application/x-genericbytedata-octet-stream\r\n
\r\n
它是在 header 末尾包含 \0 还是在最后一个 \n 之后直接开始 "Content-length" 字节?
末尾没有空字节,所以不,不包括在内。
补充。
Body 将在 header 结束后开始。而 header 中的是“\r\n\r\n”、“\n\r\n”、“\r\n\n”或“\n\n”(即两个有效的 end-of-line 序列)。
在您的 header 中的某处添加一个“\0”几乎肯定会使服务器拒绝您的请求(无声或无声)。试图在请求中注入 NULL 字符通常被视为攻击企图。
在 HTTP 行分隔符语法中是“\r\n”,通常这是解析器正在寻找的,而不是 NULL 字符。除了一个可选的例外,在 header 中,以 space 开头的行可能被视为先前 header 的一部分(这是 obs-fold 语法),因此"X:B\r\n Z\r\n" 实际上是值为 "B Z" 的 header "X"。
假设这是 http header:
Content-length: 67728\r\n
Content-type: application/x-genericbytedata-octet-stream\r\n
\r\n
它是在 header 末尾包含 \0 还是在最后一个 \n 之后直接开始 "Content-length" 字节?
末尾没有空字节,所以不,不包括在内。
补充。
Body 将在 header 结束后开始。而 header 中的是“\r\n\r\n”、“\n\r\n”、“\r\n\n”或“\n\n”(即两个有效的 end-of-line 序列)。
在您的 header 中的某处添加一个“\0”几乎肯定会使服务器拒绝您的请求(无声或无声)。试图在请求中注入 NULL 字符通常被视为攻击企图。
在 HTTP 行分隔符语法中是“\r\n”,通常这是解析器正在寻找的,而不是 NULL 字符。除了一个可选的例外,在 header 中,以 space 开头的行可能被视为先前 header 的一部分(这是 obs-fold 语法),因此"X:B\r\n Z\r\n" 实际上是值为 "B Z" 的 header "X"。