http請求由三部分組成,分別是:請求行、訊息報頭、請求正文
http(超文字傳輸協議)是乙個基於請求與響應模式的、無狀態的、應用層的協議,常基於tcp的連線方式,http1.1版本中給出一種持續連線的機制,絕大多數的web開發,都是構建在http協議之上的web應用。
1、常用的http方法有哪些?
get:用於請求訪問已經被uri(統一資源識別符號)識別的資源,可以通過url傳參給伺服器。
post:用於傳輸資訊給伺服器,主要功能與get方法類似,但一般推薦使用post方式。
put:傳輸檔案,報文主體中包含檔案內容,儲存到對應uri位置。
head:獲得報文首部,與get方法類似,只是不返回報文主體,一般用於驗證uri是否有效。
delete:刪除檔案,與put方法相反,刪除對應uri位置的檔案。
options:查詢相應uri支援的http方法。
2、get方法與post方法的區別
區別一:
get重點在從伺服器上獲取資源,post重點在向伺服器傳送資料;
區別二:
get傳輸資料是通過url請求,以field(字段)= value的形式,置於url後,並用"?"連線,多個請求資料間用"&"連線,如這個過程使用者是可見的;
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相應狀態碼
返回的狀態
1xx:指示資訊--表示請求已接收,繼續處理
2xx:成功--表示請求已被成功接收、理解、接受
3xx:重定向--要完成請求必須進行更進一步的操作
4xx:客戶端錯誤--請求有語法錯誤或請求無法實現
5xx:伺服器端錯誤--伺服器未能實現合法的請求
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、斷點續傳原理
6、常見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:實體主體的位置範圍,一般用於發出部分請求時使用
7、http的缺點與https
a、通訊使用明文不加密,內容可能被竊聽
b、不驗證通訊方身份,可能遭到偽裝
c、無法驗證報文完整性,可能被篡改
https就是http加上加密處理(一般是ssl安全通訊線路)+認證+完整性保護
8、http優化
利用負載均衡優化和加速http應用
利用http cache來優化**
php面試問答
結合實際php面試,彙總自己遇到的問題,以及網上其他人遇到的問題,嘗試提供簡潔準確的答案 包含mysql redis web 安全 網路協議 php 伺服器 業務設計 線上故障 個人簡歷 自我介紹 離職原因 職業規劃 準備問題等部分 github 感覺不錯的話,歡迎 star mysql redis...
php面試問答
結合實際php面試,彙總自己遇到的問題,以及網上其他人遇到的問題,嘗試提供簡潔準確的答案 包含mysql redis web 安全 網路協議 php 伺服器 業務設計 線上故障 個人簡歷 自我介紹 離職原因 職業規劃 準備問題等部分 github 感覺不錯的話,歡迎 star mysql redis...
php面試問答
結合實際php面試,彙總自己遇到的問題,以及網上其他人遇到的問題,嘗試提供簡潔準確的答案 包含mysql redis web 安全 網路協議 php 伺服器 業務設計 線上故障 個人簡歷 自我介紹 離職原因 職業規劃 準備問題等部分 github 感覺不錯的話,歡迎 star mysql redis...