HTTP(Hypertext Transfer Protocol,超文本傳輸協議)震束,TCP/IP協議的一個應用層協議淑倾,用于定義Web瀏覽器與Web服務器之間交換數據的過程∽┲客戶端連上Web服務器后款侵,若想獲得Web服務器中的某個Web資源,需遵守一定的通訊格式侧纯,而HTTP協議就是用于定義客戶端與Web服務器通迅的格式新锈。
HTTP 1.0與HTTP 1.1的區(qū)別
1、在HTTP 1.0中眶熬,客戶端的每次請求都要求建立一次單獨的連接壕鹉,在處理完本次請求后剃幌,就自動釋放連接。
2晾浴、在HTTP 1.1中則可以在一次連接中處理多個請求负乡,并且多個請求可以重疊進行,不需要等待一個請求結束后再發(fā)送下一個請求脊凰。
HTTP請求包
POST /meme.php/home/user/login HTTP/1.1
Host: 114.215.86.90
Cache-Control: no-cache
Postman-Token: bd243d6b-da03-902f-0a2c-8e9377f6f6ed
Content-Type: application/x-www-form-urlencoded
tel=13637829200&password=123456
HTTP/1.1定義的請求方法有8種:GET抖棘、POST、PUT狸涌、DELETE切省、PATCH、HEAD帕胆、OPTIONS朝捆、TRACE,最常的兩種GET和POST懒豹。如果是RESTful接口的話一般會用到GET芙盘、POST、DELETE脸秽、PUT儒老。
HTTP響應包
HTTP/1.1 200 OK
Date: Sat, 02 Jan 2016 13:20:55 GMT
Server: Apache/2.4.6 (CentOS) PHP/5.6.14
X-Powered-By: PHP/5.6.14
Content-Length: 78
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
{"status":202,"info":"\u6b64\u7528\u6237\u4e0d\u5b58\u5728\uff01","data":null}
HTTP協議的特點
1、支持客戶/服務器模式记餐。
2驮樊、簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑片酝。請求方法常用的有GET丁眼、 HEAD梗醇、POST屡穗。每種方法規(guī)定了客戶與服務器聯系的類型不同凭迹。 由于HTTP協議簡單,使得HTTP服務器的程序規(guī)模小晦炊,因而通信速度很快鞠鲜。
3、靈活:HTTP允許傳輸任意類型的數據對象断国。正在傳輸的類型由Content-Type加以標記贤姆。
4、無連接:無連接的含義是限制每次連接只處理一個請求稳衬。服務器處理完客戶的請求霞捡, 并且客戶端收到應答后,即斷開連接薄疚。采用這種方式可以節(jié)省傳輸時間碧信。
5赊琳、無狀態(tài):HTTP協議是無狀態(tài)協議。無狀態(tài)是指協議對于事務處理沒有記憶能力砰碴。 缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息躏筏,則它必須重傳,這樣可能導致每次連接傳送的數據量增大呈枉。另一方面趁尼,在服務器不需要先前信息時它的應答就較快。