Http协议面试题小结
1.說一下什么是Http協議
對器客戶端和 服務器端之間數據傳輸的格式規范,格式簡稱為“超文本傳輸協議”。
2.什么是Http協議無狀態協議?怎么解決Http協議無狀態協議?
(1)、無狀態協議對于事務處理沒有記憶能力。缺少狀態意味著如果后續處理需要前面的信息
? ? ? (2)、無狀態協議解決辦法: 通過1、Cookie 2、通過Session會話保存。
3.說一下Http協議中302狀態
http協議中,返回狀態碼302表示重定向。
? ? ? 這種情況下,服務器返回的頭部信息中會包含一個 Location 字段,內容是重定向到 ? ? ? ?的url
4.Http協議由什么組成?
請求報文包括三部分:
(1).請求行:包含請求方法,URI,HTTP版本協議
(2).請求首部字段
(3).請求內容實體
? ? ? 響應報文包含三部分:
(1).狀態行:包含HTTP版本,狀態碼,狀態碼原因短語
(2).響應首部字段
(3).響應內容實體
5.Http協議中有哪些請求方式?
? GET:用于請求訪問已經被URI(統一資源標識符)識別的資源,可以通過URL傳參給服務器
POST:用于傳輸信息給服務器,主要功能與GET方法類似,但一般推薦使用POST方式
PUT:傳輸文件,報文主體中包含文件內容,保存到對應URI位置
HEAD:獲得報文首部,與GET方法類似,只是不返回報文主體,一般用于驗證URI是否有效
DELETE:刪除文件,與PUT方法相反,刪除對應URI位置的文件
OPTIONS:查詢響應URI支持的HTTP方法
6.Http協議中Http1.0和1.1區別?
? 在http1.0中,當建立連接后,客戶端發送一個請求,服務器端返回一個信息后就關閉連接,當瀏覽器下次請求的 時候又要建立連接,顯然這種不斷建立連接的方式,會造成很多問題。
7.Http協議實現的原理機制
(1).整個流程步驟:
(2)域名解析過程:
(3).三次握手過程
(4).發起Http請求
(5).響應Http請求并得到HTML代碼
(6).瀏覽器解析HTML代碼
(7).瀏覽器對頁面進行渲染呈現給用戶
8.get與post請求的區別?
區別一:get重點在從服務器上獲取資源,post重點在想服務器發送數據;
區別二:get傳輸數據是通過URL請求,以filed(字段)=value的形式,置于URL后,并用"?"連接,多個請求數據之間用
"&"連接,如http://127.0.0.1/Test/login.action?name=admin&password=admin,這個過程用戶是可見的
區別三:get傳輸量小,因為受URL長度限制,但效率較低
post可以傳輸大量數據,所以上傳文件時只能用post方式
區別四:get是不安全的,因為URL是可見的,可能會泄露私密信息,如密碼等
post較get安全
9.常見的Http協議狀態
200:請求被正常處理
204:請求被受理但沒有資源可以返回
206:客戶端只是請求資源的一部分,服務器只對請求的部分資源執行GET方法,相應報文中通過Content-Range指定范圍的資源。
301:永久性重定向
302:臨時重定向
303:與302狀態碼有相似功能,只是它希望客戶端在請求一個URI的時候,能通過GET方法重定向到另一個URI上
304:發送附帶條件的請求時,條件不滿足時返回,與重定向無關
307:臨時重定向,與302類似,只是強制要求使用POST方法
400:請求報文語法有誤,服務器無法識別
401:請求需要認證
403:請求的對應資源禁止被訪問
404:服務器無法找到對應資源
500:服務器內部錯誤
503:服務器正忙
10.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:實體主體的位置范圍,一般用于發出部分請求時使用
11.Http與Https優缺點?
(1).通信使用明文不加密,內容可能被竊聽,也就是被抓包分析
(2).不驗證通信方身份,可能遭到偽裝
(3).無法驗證報文完整性,可能被篡改
Https就是Http加上加密處理(一般是SSL安全通信線路)+認證+完整性保護
12.Http優化
利用負載均衡優化和加速HTTP應用
利用HTTP Cache來優化網站
13.Http協議有哪些特征?
1、支持客戶/服務器模式;2、簡單快速;3、靈活;4、無連接;5、無狀態;
14.Cookie是否會被覆蓋,localStorage是否會被覆蓋
Cookie是可以覆蓋的,如果重復寫入同名的Cookie,那么將會覆蓋之前的Cookie
如果要刪除某個Cookie,只需要新建一個同名的Cookie,并將maxAge設置為0,并添加到response中覆蓋原來的Cookie。注意是0而不是負數。負數代表其他的意義。
localStorage存儲在一個對象中. 有鍵值對
什么是localStorage,在HTML5中,新加入了一個localStorage特性,這個特性主要是用來作為本地存儲來使用的,解決了cookie存儲空間不足的問題(cookie中每條cookie的存儲空間為4k),localStorage中一般瀏覽器支持的是5M大小,這個在不同的瀏覽器中localStorage會有所不同。
localStorage的優勢
1、localStorage拓展了cookie的4K限制
2、localStorage會可以將第一次請求的數據直接存儲到本地,這個相當于一個5M大小的針對于前端頁面的數據庫,相比于cookie可以節約帶寬,但是這個卻是只有在高版本的瀏覽器中才支持的
localStorage的局限
1、瀏覽器的大小不統一,并且在IE8以上的IE版本才支持localStorage這個屬性
2、目前所有的瀏覽器中都會把localStorage的值類型限定為string類型,這個在對我們日常比較常見的JSON對象類型需要一些轉換
3、localStorage在瀏覽器的隱私模式下面是不可讀取的
4、localStorage本質上是對字符串的讀取,如果存儲內容多的話會消耗內存空間,會導致頁面變卡
5、localStorage不能被爬蟲抓取到
localStorage與sessionStorage的唯一一點區別就是localStorage屬于永久性存儲,而sessionStorage屬于當會話結束的時候,sessionStorage中的鍵值對會被清空
總結
以上是生活随笔為你收集整理的Http协议面试题小结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电力英语和计算机考试难吗,四六级、计算机
- 下一篇: 数据挖掘:降低汽油精制过程中的辛烷值损失