從五層協議的體系結構來看,主機端需要按照自頂向下的順序進行封包:
應用層按照http請求協議構建http請求報文,交付給運輸層處理;
請求報文中包括:
請求首部:host: (可能是網域名稱)
connection: (定義本次通訊完成後鏈結是否斷開)
...(空行)
(請求攜帶的資料,可以為空)
運輸層給http請求報文加上tcp首部,成為tcp報文段,交付給網路層處理;
當請求的主機為網域名稱時,需要對網域名稱進行解析。客戶端的dns程序傳送乙個dns請求查詢網域名稱所對應的ip位址是什麼,該請求使用udp協議封裝程udp使用者資料報,該資料報中的源埠號為短暫埠號,用來標記客戶端的dns程序,目的埠號為dns伺服器熟知埠號53,封裝為ip資料報後傳送到dns伺服器。dns伺服器端在收到該udp報文後對其進行解析,收到目的埠號為53,於是將查詢請求報文交付給伺服器端dns伺服器端程序,伺服器查詢該網域名稱所對應的ip位址後對客戶端進行應答,響應報文同樣使用udp協議封裝為udp資料報,源埠號為53,目的埠號為客戶端定義的的短暫埠號,將該udp資料報封裝為ip資料報後通過乙太網發回給客戶端。客戶端收到後從中解封出網域名稱所對應的ip位址。
此時將http報文以及源位址、源埠號、目的位址、目的埠號等使用tcp協議封裝為tcp報文段。接著封裝為ip資料報傳送到web伺服器端。
在正式的傳送tcp報文段之前,客戶端和伺服器端會經歷三報文握手以確認建立連線,該連線為邏輯上的連線而非物理連線。
網路層為tcp報文段新增ip首部,成為ip資料報,交付給資料鏈路層;
資料鏈路層為ip資料報新增乙個首部和尾部,成為幀,交付給物理層;
物理層將幀看作為位元流,根據所使用的物理層協議,可能會給物理層前面再特定的位元流,隨後將位元流變換為相應的訊號,訊號通過傳輸**到達伺服器;
伺服器端需要按照自底向上的順序解包:
物理層將訊號變換為位元流,然後去掉特定的位元流後,交付給資料鏈路層,對資料鏈路層來說,交付的是幀;
資料鏈路層將去掉幀的首部和尾部,將其交付給網路層,這實際上交付的是ip資料報;
ip資料報將ip首部去掉後,將其交付給運輸層;
運輸層接收到tcp報文段後,將tcp首部去掉,剩下http請求報文交付給應用層;
應用層對http請求報文進行解析,然後執行相應的操作後,web伺服器將發回響應http報文;
伺服器端給主機端發回報文的過程同以上過程類似,主機端在接收到伺服器發回的http響應後,渲染成為頁面。
使用者在位址列輸入URL,回車後發生了什麼?
瀏覽器開一程序處理請求 dns網域名稱解析,找到對應的ip dns是應用層協議,用於將使用者提供的主機名解析為ip位址 搜尋瀏覽器自身的dns快取 不命中 檢視作業系統host檔案 不命中 請求本地網域名稱伺服器 ldns server 解析網域名稱 不命中 請求根網域名稱伺服器 root serv...
位址列回車之後發生了什麼
一 瀏覽器會傳送乙個get請求,該請求會被 到dns伺服器,由dns伺服器解析網域名稱,然後再 到相應的ip位址對應的伺服器。二 在伺服器端由apache這樣的web server來接收請求,並進行相應的處理,然後響應結果給客戶端瀏覽器。三 瀏覽器接收響應的結果,並進行相應的語法檢查,如果有錯誤,可...
在瀏覽器位址列中輸入URL後發生了什麼
瀏覽器通過ip路由到你的服務,在tcp3次握手和伺服器建立連線,通過tcp協議開始訪問你的web伺服器,web伺服器得到請求後,開始提供服務,接受請求,之後通過response返回響應給瀏覽器.1.查詢ip位址 2.建立tcp連線,接入伺服器 3.瀏覽器發起http請求 4.伺服器後台操作並作出ht...