HTTP 介紹 :
HTTP協議是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,是用于從萬維網(WWW:World Wide Web ) 服務器傳輸超文本到本地瀏覽器的傳送協議,
HTTP是一個基于TCP/IP通信協議來傳遞資料(HTML 檔案, 圖片檔案, 查詢結果等), 1、HTTP 作業原理
HTTP協議作業于客戶端-服務端架構上,瀏覽器作為HTTP客戶端通過URL向HTTP服務端即WEB服務器發送所有請 求,
Web服務器有:Nginx,Apache服務器,IIS服務器(Internet Information Services)等, Web服務器根據接收到的請求后,向客戶端發送回應資訊, HTTP默認埠號為80,但是你也可以改為8080或者其他埠,
HTTP三個特點:
HTTP是無連接:無連接的含義是限制每次連接只處理一個請求,服務器處理完客戶的請求,并收到客戶的應答 后,即斷開連接,采用這種方式可以節省傳輸時間,
HTTP是媒體獨立的:這意味著,只要客戶端和服務器知道如何處理的資料內容,任何型別的資料都可以通過 HTTP發送,客戶端以及服務器指定使用適合的MIME-type內容型別,
HTTP是無狀態:HTTP協議是無狀態協議,無狀態是指協議對于事務處理沒有記憶能力,缺少狀態意味著如果 后續處理需要前面的資訊,則它必須重傳,這樣可能導致每次連接傳送的資料量增大,另一方面,在服務器不 需要先前資訊時它的應答就較快,
HTTP是基于客戶端/服務端(C/S)的架構模型,通過一個可靠的鏈接來交換資訊,是一個無狀態的請求/回應協議,
客戶端發送一個HTTP請求到服務器的請求訊息包括以下格式:請求行(request line)、請求頭部(header)、空 行和請求資料四個部分組成,
HTTP回應也由四個部分組成,分別是:狀態行、訊息報頭、空行和回應正文,
根據HTTP標準,HTTP請求可以使用多種請求方法,
HTTP1.0定義了三種請求方法: GET, POST 和 HEAD方法,
HTTP1.1新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法,
重點方法:
GET:單純獲取資料(獲取一個index.html頁面)
POST:上傳/創建檔案(會產生新的資料)
PUT:保存資料(覆寫/更新檔案、圖片等,不會產生新的資料)
DELETE:洗掉
HTTP 狀態碼 ——
當瀏覽者訪問一個網頁時,瀏覽者的瀏覽器會向網頁所在服務器發出請求,當瀏覽器接收并顯示網頁前,此網頁所在 的服務器會回傳一個包含HTTP狀態碼的資訊頭(server header)用以回應瀏覽器的請求, HTTP狀態碼的英文為HTTP Status Code,
下面是常見的HTTP狀態碼:
200 - 請求成功
301 - 資源(網頁等)被永久轉移到其它URL
404 - 請求的資源(網頁等)不存在
403 - 服務器理解請求客戶端的請求,但是拒絕執行此請求
500 - 內部服務器錯誤
HTTP狀態碼分類 HTTP狀態碼由三個十進制數字組成,第一個十進制數字定義了狀態碼的型別,后兩個數字沒有分類的作用,
HTTP狀 態碼共分為5種型別:
1開頭(臨時回應):指臨時性的回應,需要執行者繼續操作即可解決的狀態碼,出現這種概率相對比較低,
100 表示請求者需要繼續提出請求, 表示已收到請求的第一部分,正在等待其余部分,一個字“慢”,
101 表示請求者要求服務器切換協議,服務器收到請求并且即將切換,
2開頭(成功):指已經成功地處理了請求,用戶可以正常的打開了這個頁面,
200 表示服務器已成功處理了請求,順利地完成任務,正常網站基本上都是這種狀態碼,
201 表示請求成功而且服務器重新創建了資源,
202 表示服務器已接受請求,但還沒有處理,
203 服務器已成功處理了請求,但回傳的資訊可能來自另一來源,
204 表示服務器成功處理了請求,但沒有反饋任何內容,
205 表示服務器成功處理了請求,但沒有回傳任何內容,
206 表示服務器成功處理了一部分 GET 請求,
3開頭(重定向):指要完成請求,需要進一步操作,這些狀態碼通常是做了重定向展現的,
300 表示針對請求,服務器可執行多種操作, 服務器可根據請求者 (user agent) 選擇一項操作,或提供操作串列供請求者選擇,
301 被請求的資源永久地移動到新的固定的位置,
302 被請求的資源臨時性地回應了用戶請求,這個狀態碼是有問題的,對于搜索引擎來說是不友好的,
303 請求者應當對不同的位置使用單獨的 GET 請求來檢索回應時,服務器回傳此代碼,
304 自從上次請求后,請求的網頁未做任何修改, 服務器做出回應時,不會回傳網頁內容,
305 如果服務器回傳此回應,表示請求者只能使用代理訪問請求的網頁,
307 服務器目前從不同位置的網頁回應請求,但請求者應繼續使用原有位置來進行以后的請求,
4開頭(請求錯誤):表示可能出錯,妨礙了服務器的處理,
400 服務器搞不懂請求的語法
401 當前請求需要用戶驗證,
403 服務器拒絕請求,
404 請求的網頁不存在,或者網頁打不開,
405 禁用請求中指定的方法,
406 無法使用請求的內容特征回應請求的網頁,
407 此狀態代碼與 401(未授權)差不多,但要求請求者應當授權使用代理,
408 服務器等候請求時發生超時,
409 服務器在完成請求時發生沖,因為服務器回應中包含有關沖突的資訊,
410 如果請求的資源已永久洗掉,服務器回傳此狀態碼,
411 服務器不接受沒有包含效內容長度標頭欄位的請求,
412 服務器未滿足請求者在請求中設定的其中一個條件,
413 服務器無法處理請求,因為該請求超出服務器的載荷,
414 請求的 URI(通常為網址)過長,服務器無法處理,這個連蜘蛛都不抓取,
415 請求的格式和求頁面不兼容,
416 如果頁面無法提供請求的范圍,服務器回傳的狀態代碼,
417 服務器未滿足"期望"請求標頭欄位的要求,
5開頭(服務器錯誤):指服務器在處理請求時內部發生錯誤,可能是服務器自身問題,而不是請求者操作失誤造成的,可以找空間商咨詢解決,
500 服務器內部錯誤,程式碼出錯時出現,
501 服務器不具備完成請求的功能, 例如,服務器無法識別請求方法時可能會回傳此代碼,
502 作為網關或者代理作業的服務器嘗試執行請求時,從上游服務器接收到無效的回應,
503 服務器不可用,(服務器超載或正在維護)
504 服務器作為網關或代理,但是沒有及時從上游服務器收到請求,
505 服務器不支持請求中所用的 HTTP 協議版本
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/38929.html
標籤:其他
