For HTTP/0.9:
GET /
For HTTP/1.0:
GET / HTTP/1.0
For HTTP/1.1:
GET / HTTP/1.1
Host: example.com
What is the request line for HTTP/2? Is it something like:
GET / HTTP/2.0
Or HTTP/2?
For HTTP/0.9:
GET /
For HTTP/1.0:
GET / HTTP/1.0
For HTTP/1.1:
GET / HTTP/1.1
Host: example.com
What is the request line for HTTP/2? Is it something like:
GET / HTTP/2.0
Or HTTP/2?
Is the Host: header required over SSL even if the request is not HTTP/1.1?
So, if a client connects over SSL, and sends the following request:
GET / HTTP/1.0
If I disable SNI in openssl s_client
, apache works without the Host: header.
Why does it need the Host: header when SNI is on?
From RFC 3912:
3. Protocol Example
If one places a request of the WHOIS server located at whois.nic.mil for information about "Smith", the packets on the wire will look like:
client server at whois.nic.mil open TCP ---- (SYN) ------------------------------> <---- (SYN+ACK) ------------------------- send query ---- "Smith<CR><LF>" --------------------> get answer <---- "Info about Smith<CR><LF>" --------- <---- "More info about Smith<CR><LF>" ---- close <---- (FIN) ------------------------------ ----- (FIN) ----------------------------->
This:
client server at whois.nic.mil open TCP ---- (SYN) ------------------------------> <---- (SYN+ACK) -------------------------
Seems like a two way TCP handshake? Which, does that exist?
I think this is what that should be mentioned:
client server at whois.nic.mil open TCP ---- (SYN) ------------------------------> <---- (SYN+ACK) ------------------------- ---- (ACK) ------------------------------>
I think it is basically a shorthand to the three way handshake...