1. 程式人生 > >[計算機網路] HTTP面試題大全(持續更新中)

[計算機網路] HTTP面試題大全(持續更新中)

1. 什麼是HTTP協議?

答:HTTP,即超文字傳輸協議,是TCP/IP協議族的應用層協議,它是Web的核心協議。談論HTTP通常涉及兩種程式:客戶程式和伺服器程式,客戶程式和伺服器程式執行在不同的端系統中,通過交換HTTP報文進行會話。HTTP協議定義了這些報文的結構以及客戶端和伺服器進行報文的方式。

2. 說說你理解的HTTP協議的特點?

答:1)無狀態:HTTP是一個無狀態協議,這意味著伺服器向客戶傳送被請求的檔案,而不儲存關於該客戶的任何狀態資訊。假如某個特定的客戶在短短的數秒內兩次請求同一個物件,伺服器並不會因為剛剛為該客戶端提供過相同的物件而對二次請求不再做迴應,而是重新發送被請求的物件,就像完全忘記了不久之前所做過的事一樣;2)無連線

:無連線的含義是限制每次連線只處理一個請求。伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連線。採用這種方式可以節省傳輸時間;3)媒體獨立:這意味著,只要客戶端和伺服器知道如何處理的資料內容,任何型別的資料都可以通過HTTP傳送。客戶端以及伺服器指定使用適合的MIME-type內容型別。

3. HTTP的請求報文和響應報文分別是怎麼樣的(剖析報文的結構)?

   請求報文格式

  例子

  從報文中能得知的資訊:

  • 該報文是用普通的ASCII文字書寫的
  • 第一行稱作請求行,包括三個欄位:請求方法、URL欄位和HTTP版本
  • 第一行之後的各行稱作首部行(或請求頭部),包括的資訊有:Host指明請求物件的主機地址;Connection: close表示瀏覽器要求伺服器在本次請求完成之後關閉這條連線,不使用持續連線;User-agent指明使用者代理,即向伺服器傳送請求的瀏覽器的型別;Accept-language指定使用者想得到該物件的語言版本,這是HTTP中可用的眾多內容協商首部
    之一。

  響應報文格式

  例子

  

在請求報文的基礎上分析該報文各個欄位的含義並不困難,需要特別指明的是Content-Length首部行指示的是被髮送物件中的位元組數,Content-Type首部行指示的是實體主體的文字型別,這裡是HTML文字。空行後的(data data data data data ...)表示的是Entity Body實體體,它是響應報文的主要部分,包含了請求的物件本身

4. HTTP常用的請求方法有哪些?

HTTP1.0定義了三種請求方法: GET, POST 和 HEAD方法。

HTTP1.1新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。