一、說一下什麼是Http協議?css
對器客戶端和 服務器端之間數據傳輸的格式規範,格式簡稱爲「超文本傳輸協議」。程序員
二、什麼是Http協議無狀態協議?怎麼解決Http協議無狀態協議?(曾經去某創業公司問到)瀏覽器
- 無狀態協議對於事務處理沒有記憶能力。缺乏狀態意味着若是後續處理須要前面的信息
- 無狀態協議解決辦法: 經過一、Cookie 二、經過Session會話保存。
三、說一下Http協議中302狀態(阿里常常問)緩存
- http協議中,返回狀態碼302表示重定向。
- 這種狀況下,服務器返回的頭部信息中會包含一個 Location 字段,內容是重定向到的url。
四、Http協議有什麼組成?安全
請求報文包含三部分:服務器
- 請求行:包含請求方法、URI、HTTP版本信息
- 請求首部字段
- 請求內容實體
響應報文包含三部分:網絡
- 狀態行:包含HTTP版本、狀態碼、狀態碼的緣由短語
- 響應首部字段
- 響應內容實體
說一下網絡傳輸的過程負載均衡
五、Http協議中有那些請求方式?post
- GET: 用於請求訪問已經被URI(統一資源標識符)識別的資源,能夠經過URL傳參給服務器
- POST:用於傳輸信息給服務器,主要功能與GET方法相似,但通常推薦使用POST方式。
- PUT: 傳輸文件,報文主體中包含文件內容,保存到對應URI位置。
- HEAD: 得到報文首部,與GET方法相似,只是不返回報文主體,通常用於驗證URI是否有效。
- DELETE:刪除文件,與PUT方法相反,刪除對應URI位置的文件。
- OPTIONS:查詢相應URI支持的HTTP方法。
六、Http協議中Http1.0與1.1區別?優化
- 在http1.0中,當創建鏈接後,客戶端發送一個請求,服務器端返回一個信息後就關閉鏈接,當瀏覽器下次請求的時候又要創建鏈接,顯然這種不斷創建鏈接的方式,會形成不少問題。
- 在http1.1中,引入了持續鏈接的概念,經過這種鏈接,瀏覽器能夠創建一個鏈接以後,發送請求並獲得返回信息,而後繼續發送請求再次等到返回信息,也就是說客戶端能夠連續發送多個請求,而不用等待每個響應的到來。
七、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支持標準字符集,能夠正確傳遞中文字符。
九、常見Http協議狀態?
200:請求被正常處理
204:請求被受理但沒有資源能夠返回
206:客戶端只是請求資源的一部分,服務器只對請求的部分資源執行GET方法,相應報文中經過Content-Range指定範圍的資源。
301:永久性重定向
302:臨時重定向
303:與302狀態碼有類似功能,只是它但願客戶端在請求一個URI的時候,能經過GET方法重定向到另外一個URI上
304:發送附帶條件的請求時,條件不知足時返回,與重定向無關
307:臨時重定向,與302相似,只是強制要求使用POST方法
400:請求報文語法有誤,服務器沒法識別
401:請求須要認證
403:請求的對應資源禁止被訪問
404:服務器沒法找到對應資源
500:服務器內部錯誤
503:服務器正忙
十、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:實體主體的位置範圍,通常用於發出部分請求時使用
十一、Http與Https優缺點?
- 通訊使用明文不加密,內容可能被竊聽,也就是被抓包分析。
- 不驗證通訊方身份,可能遭到假裝
- 沒法驗證報文完整性,可能被篡改
- HTTPS就是HTTP加上加密處理(通常是SSL安全通訊線路)+認證+完整性保護
十二、Http優化
- 利用負載均衡優化和加速HTTP應用
- 利用HTTP Cache來優化網站
1三、Http協議有那些特徵?
一、支持客戶/服務器模式;二、簡單快速;三、靈活;四、無鏈接;五、無狀態。