HTTP協議,也稱爲超文本傳輸協議,是從服務器傳輸超文本到客戶端的一種協議。指的就是一種在不一樣網絡設備之間傳輸信息的規定,有了它,不一樣設備之間能夠以一種統一的規則進行數據傳輸瀏覽器
HTTP使用URI創建鏈接和傳輸數據
URI:統一資源標識符,用來指示這是什麼資源,你能夠理解爲一我的的身份證號碼。
URL:統一資源定位符,用來指示資源的具體位置,網絡上的每個資源都具備其單獨的存儲位置,能夠理解爲一我的的家庭住址。服務器
協議規定,請求從客戶端發出,服務端收到請求後給予響應。必定是客戶端先發出的請求,服務端不會主動發送響應。cookie
HTTP是無狀態協議,協議不會對請求與響應的通訊狀態進行保存,每當有新的請求就會有新的響應發出。協議爲了更快的處理事務,不會保留前面的請求響應報文。可是需求的變化,是的httpp須要保存以前的請求響應,好比在登陸到一個網站後,跳轉到第三方網站,還須要前面的網站保存着登陸狀態,因而在http1.1中,增長了cookie的技術以實現這種需求。網絡
是指每次鏈接只處理一個請求,在收到請求-發送響應-收到客戶端的應答後,服務器會斷開與客戶端的鏈接,這樣在處理大量請求時,能夠節約不少服務器資源,提升併發性能。
無鏈接有兩種狀態,早期版本中,在完成請求-響應後,馬上斷開鏈接。在http/1.1中,完成請求-響應後,服務器等待一個固定的時間,發現客戶端再也不發送請求後,才斷開鏈接,這樣的好處是在客戶端頻繁發送請求時,能夠節省不少創建鏈接花費的時間。等待時間通常爲3秒鐘,也能夠根據本身網站用戶行爲進行必定的改變。併發
請求指定頁面,返回實體主體高併發
發送請求,請求的內容包含在請求體中post
與GET相似,可是返回的內容是報頭,沒有具體內容。性能
想服務器中上傳資源,取代指定位置的內容。測試
刪除服務器中指定頁面網站
HTTP/1.1 協議中預留給可以將鏈接改成管道方式的代理服務器。
容許客戶端查看服務器性能
回顯服務器收到的請求,用於測試和診斷
對put方法的補充,用來局部更新資源。
(1)請求行:包括請求方式,要訪問的資源,http協議版本
(2)請求頭:包括首部字段,好比HOST地址,瀏覽器頭,接受內容的格式等
(3)空行:請求頭後必須是空行,即便後面的請求數據是空行,這個空行也要有
(4)請求數據:存儲的資源信息
(1)響應頭:包括版本號,狀態碼(200),狀態消息(OK)
(2)響應頭:包括時間,內容長度等
(3)空行
(4)響應數據:服務器返回給客戶端的信息
狀態碼有5種類別,分別以不一樣的數字開頭,不一樣狀態碼有不一樣的含義
類別 | 功能 |
---|---|
1XX | 指示信息,表示請求已經接受,繼續處理 |
2XX | 成功,表示請求已經被接受處理 |
3XX | 重定向,請求須要進行更進一步的操做 |
4XX | 客戶端錯誤,請求有語法錯誤或者不被理解 |
5XX | 服務器內部錯誤,請求沒法處理 |
常見的狀態碼:
200:OK 響應成功
301 - 資源(網頁等)被永久轉移到其它URL
302 - 臨時跳轉
400 Bad Request - 客戶端請求有語法錯誤,不能被服務器所理解
401 Unauthorized - 請求未經受權,這個狀態代碼必須和WWW-Authenticate報頭域一塊兒使用
404 - 請求資源不存在,多是輸入了錯誤的URL
500 - 服務器內部發生了不可預期的錯誤
503 Server Unavailable - 服務器當前不能處理客戶端的請求,一段時間後可能恢復正常。
HTTP協議定義了客戶端如何向服務器請求數據,以及服務器如何將數據發送給客戶端。
一、客戶端經過瀏覽器與服務器創建TCP套接字
二、客戶端經過TCP套接字向服務器發送請求報文。
三、服務器接收到請求後,向客戶端發送響應報文。
四、客戶端接收到響應報文後,若是connection是close,能夠當即斷開鏈接;若是鏈接方式的keepalive,則能夠保持鏈接一段時間,在這個時間裏客戶端與服務器之間能夠繼續傳輸數據。
五、客戶端的瀏覽器解析響應報文,展現給用戶。
TCP套接字:就是對網絡中不一樣主機上的應用進程之間進行雙向通訊的端點的抽象。一個套接字就是網絡上進程通訊的一端,提供了應用層進程利用網絡協議交換數據的機制。