Http協議面試題

2021-09-25 12:24:35 字數 3508 閱讀 9811

1、說一下什麼是http協議

http協議,即超文字傳輸協議(hypertext transfer protocol)。是一種詳細規定了瀏覽器和全球資訊網(www = world wide web)伺服器之間互相通訊的規則,通過網際網路傳送全球資訊網文件的資料傳送協議。

2、什麼是http協議無狀態協議?怎麼解決http協議無狀態協議?

(1)、無狀態協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的資訊

(2)、無狀態協議解決辦法: 通過1、cookie 2、通過session會話儲存。

3、http協議由什麼組成?

請求報文包括三部分:

(1).請求行:包含請求方法,uri,http版本協議

(2).請求首部字段

(3).請求內容實體

響應報文包含三部分:

(1).狀態行:包含http版本,狀態碼,狀態碼原因短語

(2).響應首部字段

(3).響應內容實體

4、http協議中有哪些請求方式?

get:用於請求訪問已經被uri(統一資源識別符號)識別的資源,可以通過url傳參給伺服器

post:用於傳輸資訊給伺服器,主要功能與get方法類似,但一般推薦使用post方式

put:傳輸檔案,報文主體中包含檔案內容,儲存到對應uri位置

head:獲得報文首部,與get方法類似,只是不返回報文主體,一般用於驗證uri是否有效

delete:刪除檔案,與put方法相反,刪除對應uri位置的檔案

options:查詢響應uri支援的http方法

5、http協議中http1.0和http1.1區別?

http1.0預設使用短連線,每次請求都需要建立新的tcp連線,連線不能復用。http1.1支援持久連線和請求的流水線處理,在乙個tcp連線上可以傳送多個http請求和響應,減少建立和關閉tcp連線的消耗和延遲,提高效率。http1.1預設開啟「connection:keep-alive」,使用長連線,加入「connection:close」才關閉。

6、http和https的區別

a)https協議需要到ca申請證書,一般免費證書較少,因而需要一定費用。

b)http是超文字傳輸協議,協議執行在tcp之上,資訊是明文傳輸,https則是具有安全性的ssl加密傳輸協議,執行在ssl/tls之上,ssl/tls執行在tcp之上,資訊是加密傳輸。

c)http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443。

d)http的連線很簡單,是無狀態的;https協議是由ssl+http協議構建的可進行加密傳輸、身份認證的網路協議,比http協議安全。

7、http協議有哪些特徵?

1、支援客戶/伺服器模式;2、簡單快速;3、靈活;4、無連線;5、無狀態;

8、常見http首部字段

a、通用首部字段(請求報文與響應報文都會使用的首部字段)

date:建立報文時間

connection:連線的管理

cache-control:快取的控制

transfer-encoding:報文主體的傳輸編碼方式

b、請求首部字段(請求報文會使用的首部字段)

host:請求資源所在伺服器

accept:可處理的**型別

accept-charset:可接收的字符集

accept-encoding:可接受的內容編碼

accept-language:可接受的自然語言

c、響應首部字段(響應報文會使用的首部字段)

accept-ranges:可接受的位元組範圍

location:令客戶端重新定向到的uri

server:http伺服器的安裝資訊

d、實體首部字段(請求報文與響應報文的的實體部分使用的首部字段)

allow:資源可支援的http方法

content-type:實體主類的型別

content-encoding:實體主體適用的編碼方式

content-language:實體主體的自然語言

content-length:實體主體的的位元組數

content-range:實體主體的位置範圍,一般用於發出部分請求時使用

9、在瀏覽器中輸入 www.baidu.com 後執行的全部過程

1)客戶端瀏覽器通過dns解析到www.baidu.com的ip位址220.181.27.48,通過這個ip位址找到客戶端到伺服器的路徑。客戶端瀏覽器發起乙個http會話到220.161.27.48,然後通過tcp進行封裝資料報,輸入到網路層。

2)在客戶端的傳輸層,把http會話請求分成報文段,新增源和目的埠,如伺服器使用80埠監聽客戶端的請求,客戶端由系統隨機選擇乙個埠如5000,與伺服器進行交換,伺服器把相應的請求返回給客戶端的5000埠。然後使用ip層的ip位址查詢目的端。

3)客戶端的網路層不用關係應用層或者傳輸層的東西,主要做的是通過查詢路由表確定如何到達伺服器,期間可能經過多個路由器,這些都是由路由器來完成的工作,不作過多的描述,無非就是通過查詢路由表決定通過那個路徑到達伺服器。

4)客戶端的鏈路層,包通過鏈路層傳送到路由器,通過鄰居協議查詢給定ip位址的mac位址,然後傳送arp請求查詢目的位址,如果得到回應後就可以使用arp的請求應答交換的ip資料報現在就可以傳輸了,然後傳送ip資料報到達伺服器的位址。 

事件順序

涉及到的協議

(1) 應用層:http(www訪問協議),dns(網域名稱解析服務) 

dns解析網域名稱為目的ip,通過ip找到伺服器路徑,客戶端向伺服器發起http會話,然後通過運輸層tcp協議封裝資料報,在tcp協議基礎上進行傳輸

(2) 傳輸層:tcp(為http提供可靠的資料傳輸),udp(dns使用udp傳輸) 

http會話會被分成報文段,新增源、目的埠;tcp協議進行主要工作

(3)網路層:ip(ip資料資料報傳輸和路由選擇), 

為資料報選擇路由,ip協議進行主要工作

10、ssl屬於哪一層協議?

ssl協議位於tcp/ip協議與各種應用層協議之間,為資料通訊提供安全支援。ssl協議可分為兩層:

ssl記錄協議(ssl record protocol):它建立在可靠的傳輸協議(如tcp)之上,為高層協議提供資料封裝、壓縮、加密等基本功能的支援。

ssl握手協議(ssl handshake protocol):它建立在ssl記錄協議之上,用於在實際的資料傳輸開始前,通訊雙方進行身份認證、協商加密演算法、交換加密金鑰等。

因此,會話層的功能和表示層的功能正好和ssl記錄協議和握手協議的功能一樣!

HTTP協議面試題

1 說一下什麼是http協議?對器客戶端和 伺服器端之間資料傳輸的格式規範,格式簡稱為 超文字傳輸協議 2 什麼是http協議無狀態協議?怎麼解決http協議無狀態協議?曾經去某創業公司問到 3 說一下http協議中302狀態 阿里經常問 4 http協議有什麼組成?請求報文包含三部分 響應報文包含...

Http協議面試題

1.什麼http協議 對客戶端和伺服器端之間資料傳輸的格式規範,格式簡稱為 超文字傳輸協議 2.什麼是http協議無狀態協議?怎麼解決http協議無狀態協議?無狀態協議對於事物處理沒有記憶能力。缺少狀態意味著後續的處理需要前面的資訊。無狀態協議的解決辦法 通過1 cookie 2 通過session...

http協議面試題

http請求由三部分組成,分別是 請求行 訊息報頭 請求正文 http 超文字傳輸協議 是乙個基於請求與響應模式的 無狀態的 應用層的協議,常基於tcp的連線方式,http1.1版本中給出一種持續連線的機制,絕大多數的web開發,都是構建在http協議之上的web應用。1 常用的http方法有哪些?...