1. www.example.com的IP是什么会通过DNS服务器来解析并回传给浏览器,如:98.184.216.34。
2. 向98.184.216.34用80端口建立TCP连接请求,服务器将返回给浏览器TCP连接建立成功的信息。
3. HTTP请求,从服务器例把www.example.com的页面传给浏览器,HTTP响应给浏览器一个页面。浏览器渲染并展示HTML。
HTTP请求以及HTTP响应报文的格式
http://www.example.com/这个地址我们称之为URL.由以下几部分组成:
http:称之为协议又叫schema。浏览器默认为http协议。
www.example.com:称之为域名,应该后面加一个端口号,但是可以省略。因为默认为80端口。如果写上的话就是www.example.com:80。
/:表示是服务端分路径下的一个资源
GET / HTTP/1.1 是请求行
GET是一个请求方法。包括GET,POST,PUT,HEAD,OPTIONS,DEKETE,TRACE
/:表示资源路径(URI)
HTTP/1.1 :表示协议版本号
最后以/r ,/n结尾
请求头:
Host:www.example.com 主机名,虚拟主机
Connection:keep-alive 是HTTP/1.1增加的,使用keepalive,一个连接可以发多个请求。
User-Agent:Mozilla/5.0(Macintosh:Intel Mac OS X 10_11_1) AppleWebKit/537.36 like Gecko)Chrome/46.0.2490.80 Safari/537.36 :请求发出者,兼容性以及定制化需求。比如说手机和PC端返回的页面应该是不一样的。
HTTP响应
HTTP/1.1 200 OK \r\n
HTTP/1.1是一个协议版本,200 是一个状态码,OK是原因,一般2打头的都是ok的。304 Not Modified. 3打头的都是与缓存相关的。 404 Not Found。 500 Internal Serve Error,5打头的,服务器端出错。
响应头:
Server:ECS(iad/182A) web服务器
Content-Type:text/html 内容类型,HTML,音频,视频等
Content-Length:1270 内容长度
响应头与响应体用一个空行分开,不加的话就无法分别响应头与响应体。
响应体可以是二进制或文本,与响应头通过空行分割;长度一般由Content-Length头指定。