HTTP:标头中的空白行 - 有效的http请求标头?

时间:2017-10-25 05:24:44

标签: apache http nginx https http-headers

只是想知道,这是一个有效的http请求,请在实际请求标头之前记下前导空白行“\ r \ n”。

\r\n\r\nGET / HTTP/1.0\r\n\r\n

虽然它可以与所有服务器(apache,lighttpd,nginx)一起使用,但RFC并不强制要求任何有关前导空行的内容并将其留给实现。

由于

1 个答案:

答案 0 :(得分:0)

因此标准规定每个新行应以\r\n结尾,每个请求都应以\r\n\r\n

结尾

What, at the bare minimum, is required for an HTTP request?

但是大多数服务器都会处理大多数类型的领先新行

printf '\rGET / HTTP/1.1\r\nHost: www.example.com\r\nConnection: close\r\n\r\n' |
  nc www.example.com 80
printf '\r\nGET / HTTP/1.1\r\nHost: www.example.com\r\nConnection: close\r\n\r\n' |
  nc www.example.com 80
printf '\r\r\nGET / HTTP/1.1\r\nHost: www.example.com\r\nConnection: close\r\n\r\n' |
  nc www.example.com 80
printf '\n\rGET / HTTP/1.1\r\nHost: www.example.com\r\nConnection: close\r\n\r\n' |
  nc www.example.com 80

关于是否有效,网上很多东西都是100%符合RFC标准。你也可以看到

https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol

因此,空间会在开始时产生问题,但许多服务器会删除前导空白的新行