1. www.example.com的IP是什么會(huì)通過DNS服務(wù)器來(lái)解析并回傳給瀏覽器,如:98.184.216.34。
2. 向98.184.216.34用80端口建立TCP連接請(qǐng)求,服務(wù)器將返回給瀏覽器TCP連接建立成功的信息。
3. HTTP請(qǐng)求,從服務(wù)器例把www.example.com的頁(yè)面?zhèn)鹘o瀏覽器,HTTP響應(yīng)給瀏覽器一個(gè)頁(yè)面。瀏覽器渲染并展示HTML。
HTTP請(qǐng)求以及HTTP響應(yīng)報(bào)文的格式
http://www.example.com/這個(gè)地址我們稱之為URL.由以下幾部分組成:
http:稱之為協(xié)議又叫schema。瀏覽器默認(rèn)為http協(xié)議。
www.example.com:稱之為域名,應(yīng)該后面加一個(gè)端口號(hào),但是可以省略。因?yàn)槟J(rèn)為80端口。如果寫上的話就是www.example.com:80。
/:表示是服務(wù)端分路徑下的一個(gè)資源
GET / HTTP/1.1 ? ?是請(qǐng)求行
GET是一個(gè)請(qǐng)求方法。包括GET,POST,PUT,HEAD,OPTIONS,DEKETE,TRACE
/:表示資源路徑(URI)
HTTP/1.1 :表示協(xié)議版本號(hào)?
最后以/r ,/n結(jié)尾
請(qǐng)求頭:
Host:www.example.com ?主機(jī)名,虛擬主機(jī)
Connection:keep-alive ?是HTTP/1.1增加的,使用keepalive,一個(gè)連接可以發(fā)多個(gè)請(qǐng)求。
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 ? ?:請(qǐng)求發(fā)出者,兼容性以及定制化需求。比如說手機(jī)和PC端返回的頁(yè)面應(yīng)該是不一樣的。
HTTP響應(yīng)
HTTP/1.1 200 OK ?\r\n ?
HTTP/1.1是一個(gè)協(xié)議版本,200 是一個(gè)狀態(tài)碼,OK是原因,一般2打頭的都是ok的。304 Not Modified. 3打頭的都是與緩存相關(guān)的。 404 Not Found。 500 Internal Serve Error,5打頭的,服務(wù)器端出錯(cuò)。
響應(yīng)頭:
Server:ECS(iad/182A) web服務(wù)器
Content-Type:text/html ? ?內(nèi)容類型,HTML,音頻,視頻等
Content-Length:1270 ? ?內(nèi)容長(zhǎng)度
響應(yīng)頭與響應(yīng)體用一個(gè)空行分開,不加的話就無(wú)法分別響應(yīng)頭與響應(yīng)體。
響應(yīng)體可以是二進(jìn)制或文本,與響應(yīng)頭通過空行分割;長(zhǎng)度一般由Content-Length頭指定。