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方法有哪些?...