My Calendar

2012年9月16日 星期日

HTTP

HTTP

            HTTP是Hyper Text Transfer Protocol的縮寫,這是一種通訊協定,架構與TCP/IP之上應用層的一種協定。通訊協定基本上就是兩台電腦間溝通的方式。依不同的連線方式與所使用的網路服務而定,會有不同的通訊協定。例如發送信件時用SMTP,傳輸檔案用FTP等等。而瀏覽器跟Web伺服器之間的溝通方式,則是HTTP,它有兩個非常重要的特性:
  • 請求(Request)/ 回應(Response)模型
  • 無狀態(Stateless)通訊協定
             HTTP是基於請求/回應的通訊協定,客戶端對伺服器放出一個取得一個資源的請求,伺服器將要求的資源回應給客服端,每次的連線只作一次請求/回應,沒有請求就不會有回應。


             在HTTP協定下,伺服器是一個健忘的傢伙。伺服器回應客服端後,就不會記得客戶端的資訊,更不會維護與客戶端之間的狀態。因此HTTP又稱為Stateless 通訊協定。

HTTP 請求方法
瀏覽器在使用HTTP發出請求時,有幾種請求方法:
  • GET     請求獲取Request-URI所標識的資源
  • POST    在Request-URI所標識的資源後附加新的數據
  • HEAD    請求獲取由Request-URI所標識的資源的響應消息報頭
  • PUT    請求服務器存儲一個資源,並用Request-URI作為其標識
  • DELETE  請求服務器刪除Request-URI所標識的資源
  • TRACE   請求服務器回送收到的請求信息,主要用於測試或診斷
  • CONNECT 保留將來使用
  • OPTIONS 請求查詢服務器的性能,或者查詢與資源相關的選項和需求

在日常生活中最常接觸的請求方法就是GET和POST這兩種方法。以下分別介紹GET和POST的使用。

GET
GET 顧名思義,就是向伺服器取得指定的資源,在發出GET請求時,必須告訴伺服器所請求資源的URL,例如一個GET請求的發送範例如下:

在上圖中,請求標頭的內容是傳給伺服器參考的額外資訊。請求參數通常是使用者發送給伺服器的必要資訊 。請求資訊通常是使用者傳給伺服器的必要資訊,這些資訊通常是透過表單進行發送,伺服器必須有這些資訊才可以進一步對使用者的請求作出正確的回應,請求參數是在URL之後跟隨一個問號(?) 然後就是請求參數名稱和請求參數值,如果需要多個請求參數,則以&字元連接。GET請求可以發送的請求參數長度是有限的,對於太大量的資料不適合用GET進行傳送,這時候可以改成POST

POST請求
POST請求就是讓你請求時發怖(POST)資訊給伺服器,對於大量或是複雜的資訊,基本上都會採用POST來進行發送,一個POST發送的例子如下:





            從上圖中可以看到,POST的請求參數從URL轉移到訊息本體當中。因為訊息本體的內容長度沒有限制,所以大量的資料發送都會使用POST方法。而且請求參數移到訊息本體中,因此一些敏感資訊即使長度不長,通常也會採用POST方法發送。




  

沒有留言:

張貼留言