HTTP協議面試準備

轉自:Sunny*
http請求部分由三部分組成,分別是:請求報頭,消息報頭,請求正文

HTTP(超文本傳輸協議)是一個基於請求與相應答模式的,無狀態的,應用層協議,常基於TCP的連接方式,HTTP1.1版本給出一中持續連接的機制,絕大多數Web開發,都是構建在HTTP協議上的應用

1.常用的HTTP方法有那些
GET:用於訪問已經被URI(同意資源標識符)識別的資源,可以通過URL傳參給服務器
POST:用於傳輸信息給服務器,但是一般推薦POST方式
PUT:傳輸文件,報文主題包含文件內容,保存到URI位置
HEAD:獲得報文首部,與GET方法類似,只是,不反回報文主體,一般用於驗證URI是否有效
DELETE刪除文件,和PUT相反,刪除對應URI位置文件
OPTION查詢相應URI支持的HTTP方法
2.GET方法與POST方法的區別
區別一:
get重點從服務器上獲取文件,POST重點向服務器發送數據
區別二
get傳輸數據是通過URL請求,以field(字段)= value的形式,置於URL後,並用"?“連接,多個請求數據間用”&"連接,如http://127.0.0.1/Test/login.action?name=admin&password=admin,這個過程用戶是可見的;
post傳輸數據通過Http的post機制,將字段與對應值封存在請求實體中發送給服務器,這個過程對用戶是不可見的;
區別三
Get傳輸的數據量小,因爲受URL長度限制,但效率較高;
Post可以傳輸大量數據,所以上傳文件時只能用Post方
區別四
get是不安全的,因爲URL是可見的,可能會泄露私密信息,如密碼等;
post較get安全性較高

區別五
get方式只能支持ASCII字符,向服務器傳的中文字符可能會亂碼。
post支持標準字符集,可以正確傳遞中文字符。

3. HTTP 請求報文與響應報文格式
請求報文包含 三部分:
a.請求行:包含請求方法,URI,HTTP版本信息
b.請求首部字段
c.請求內容實體
響應報文包含三
a.狀態行:包含HTTP版本,狀態碼,狀態碼原因短句
b.響應首部字段
c.響應內容實體
4.常見的HTTP相應狀態嗎
1x1xx:指示信息–表示請求已接收,繼續處理
2xx:成功–表示請求已被成功接收、理解、接受
3xx:重定向–要完成請求必須進行更進一步的操作
4xx:客戶端錯誤–請求有語法錯誤或請求無法實現
5xx:服務器端錯誤–服務器未能實現合法的請求x:指示信息–表示請求已接收,繼續處理

200:請求被正常處理
204:請求被受理但沒有資源可以返回
206:客戶端只是請求資源的一部分,服務器只對請求的部分資源執行GET方法,相應報文中通過Content-Range指定範圍的資源。
301:永久性重定向
302:臨時重定向
303:與302狀態碼有相似功能,只是它希望客戶端在請求一個URI的時候,能通過GET方法重定向到另一個URI上
304:發送附帶條件的請求時,條件不滿足時返回,與重定向無關
307:臨時重定向,與302類似,只是強制要求使用POST方法
400:請求報文語法有誤,服務器無法識別
401:請求需要認證
403:請求的對應資源禁止被訪問
404:服務器無法找到對應資源
500:服務器內部錯誤
503:服務器正忙

5、HTTP1.1版本新特性
a、默認持久連接節省通信量,只要客戶端服務端任意一端沒有明確提出斷開TCP連接,就一直保持連接,可以發送多次HTTP請求

b、管線化,客戶端可以同時發出多個HTTP請求,而不用一個個等待響應

c、斷點續傳原理

7、HTTP的缺點與HTTPS
Http和Https的區別

Http協議運行在TCP之上,明文傳輸,客戶端與服務器端都無法驗證對方的身份;Https是身披SSL(Secure Socket Layer)外殼的Http,運行於SSL上,SSL運行於TCP之上,是添加了加密和認證機制的HTTP。二者之間存在如下不同:

端口不同:Http與Http使用不同的連接方式,用的端口也不一樣,前者是80,後者是443;

資源消耗:和HTTP通信相比,Https通信會由於加減密處理消耗更多的CPU和內存資源;

開銷:Https通信需要證書,而證書一般需要向認證機構購買;
 
Https的加密機制是一種共享密鑰加密和公開密鑰加密並用的混合加密機制。

8、HTTP優化

利用負載均衡優化和加速HTTP應用

利用HTTP Cache來優化網站
9、對稱加密與非對稱加密

對稱密鑰加密是指加密和解密使用同一個密鑰的方式,這種方式存在的最大問題就是密鑰發送問題,即如何安全地將密鑰發給對方;而非對稱加密是指使用一對非對稱密鑰,即公鑰和私鑰,公鑰可以隨意發佈,但私鑰只有自己知道。發送密文的一方使用對方的公鑰進行加密處理,對方接收到加密信息後,使用自己的私鑰進行解密。

由於非對稱加密的方式不需要發送用來解密的私鑰,所以可以保證安全性;但是和對稱加密比起來,它非常的慢,所以我們還是要用對稱加密來傳送消息,但對稱加密所使用的密鑰我們可以通過非對稱加密的方式發送出去。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章