1. 程式人生 > >http協議請求,get和post的區別與聯絡

http協議請求,get和post的區別與聯絡

                 網路通訊中HTTP協議詳解

一、什麼是HTTP協議

    HTTP協議全稱:HyperText Transfer Protocol 是一種超文字傳輸協議,通過URL(統一資源標示符),請求網路上遠端資源,格式是http://

HTTP協議在現在網際網路中使用最多的通訊協議,具有以下幾個優點:

1、簡單快速:客戶端向服務端傳送請求時,只需傳送請求方法和路徑。

                          在HTTP/1.1協議中,定義了GET、POST、HEAD、PUT、DELETE、TARCE、CONNECT、PATCH幾種請求方式,目                             前使用最多的是GET和POST請求方式。

                          由於HTTP協議簡單,使得HTTP伺服器的程式規模小,因為通訊速度很快。

2、靈    活:HTTP協議允許傳輸任意型別的資料物件。正在傳輸的型別由Content-Type標記。

3、無連線:每次連結只處理一個請求,伺服器處理完客戶端的請求,並受到請求響應後即斷開連結,採用這種方式可以節省傳輸時間                        和伺服器資源。

二、HTTP的通訊過程


客戶端通過傳送一個URL請求,伺服器根據請求查詢本地資料庫或者資源庫作出響應,並將資料返回給客戶端;

下面通過使用WireShark工具,對一個GET請求過程作出詳細解析:

 1、請求階段:




 HTTP協議規定:一個完整的由客戶端傳送給服務端的HTPP請求中包含

                            請求行:包含請求方法、請求資源路徑、HTTP協議版本

                                          GET /chsi/images/2014/img01/jpg?v=20170110  HTTP/1.1\r\n  

                            請求頭:包含對客戶端環境的描述、客戶端請求的主機地址等資訊

                                           HOST:t1.chei.com.cn\r\n              // 客戶端的想要訪問的伺服器地址或域名

                                           User-Agent:  Mozilla/5.0(Macintosh;Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 // (客戶                                            端的型別,客戶端開發環境等)

                                           Accept:  text/html;       //  客戶端所能接收的資料型別

                                           Accept-Language: zh-cn\r\n           // 客戶端的語言環境

                                           Accept-Encoding:  gzip // 客戶端支援的資料壓縮格式;


2、響應階段



        HTTP協議規定:一個完整的HTTP響應中包含以下內容

                                   狀態行:包含HTTP協議版本、狀態碼、狀態英文名稱

                                                  HTTP/1.1 200 OK

                                   響應頭:包含對伺服器的描述、對返回資料的描述

                                                  Server:  nginx    //  伺服器的型別

                                                  Content-Type:image/jpeg //   返回資料的型別

                                                  Content-Length:6560  //  返回資料的長度

                                                  Data:Wed,15  Mar 2017 02:56:23 GMT  //  響應時間

                                   實體內容:伺服器返回給客戶端的具體資料,該例項中是一張圖片資料:如下圖所示


三、GET和POST請求的區別

          GET請求:在URL後面以?隔開,?前面是請求的地址或域名,後面是請求時的引數,多個引數之間用&隔開,                                比如:http://chsi/image/2014/img01.jpg?v=20170110&t=test

          POST請求:引數全部在請求體中;

兩者的區別主要是:

1、如果傳遞大量資料、比如大檔案的上傳下載,只能使用POST請求,GET請求的URL有長度限制,一般不超過1kb;

2、POST安全性較好,如果包含敏感資訊比如使用者登入的賬號密碼,使用POST請求;

3、如果涉及到資料的增加、修改、刪除,使用POST。