JSP總結一:HTTP協議

來源:互聯網
上載者:User

     Http協議由Tim Berners-Lee(被稱為Web之父)發明。Http協議是完全基於文本的。瀏覽器通過http協議和伺服器互動,預設是80連接埠。也可以顯式的在URL中指出連接埠號碼。比如:http://localhost:8080/index.html。Http協議是一種無狀態協議,並且不適合即時的擷取資料的應用,因為過多即時的用戶端和服務端的互動將會導致網路的頻繁通訊並受到頻寬的限制。Http協議也不能告訴伺服器客戶的請求是如何產生的。這使得B/S比C/S實現上難度較大。
       瀏覽器主要有兩種命令和伺服器互動,一種叫Get,另一種叫Post。邏輯上看,Get命令相當於讀操作,向伺服器發出請求,然後擷取資料,Post命令向伺服器發出執行某個動作的指令,有可能會修改伺服器上的某些資料,因此是無法復原的操作。我們要防止使用者不斷的快速重新整理頁面引發的Post命令,通常一個提示對話方塊讓使用者確認操作是否真的有必要進行是一種常用的方法。
       Get命令的格式:請求行,請求首部,請求主體(可選)。
GET /index.html HTTP/1.0
Host: www.gefionsoftware.com
User-Agent: Mozilla/4.5 [en] (WinNT;I)
Accept: image/gif, image/jpeg, image/pjpeg, image/ping,*/*
Accept-Language : en
Accept-Charset : iso-8859-1,*,utf-8
 
       上面的例子裡面,第一行是請求行,表明是GET命令,請求的資源是index.html ,協議是HTTP1.0。後面所有的都是請求首部,沒有請求主體。
 
       伺服器的應答格式:狀態行,應答首部,應答主體(可選)。
HTTP/1.0 200 OK
Last-Modified: Mon, 20 Dec 2001:23:26:42 GMT
Date: Tue, 11 Jan 2002 20:52:40 GMT
Status:200
Content-Type: text/html
Servlet-Engine: Tomcat Web Server/4.0.1
Content-Length: 59
 
<html>
       <body>
              <h1>Hello,world!</h1>
       </body>
</html>
 
       第一行是狀態行,協議+狀態值+狀態原因。然後是應答首部,最後一段html代碼是應答主體。我們經常能看到狀態值為401的回應,代表未被授權。
       如果應答主體比較複雜,裡麵包含了圖片或者其他資源的連結。用戶端會自動再發出一個Get命令擷取相關資源。通常這些動作是並行的,不過每個瀏覽器的行為不一樣:IE似乎表現成串列,而Firefox會先將第一個應答主體的內容顯示出來,在逐個顯示內嵌圖片的應答主體。
 
       Get命令還可加上請求參數。請求參數可以接著url後面,比如:
http://localhost:8080/index.html?a=2&b=7 ?開始,&間隔每個參數名稱和值對。這種方式稱為查詢字串。由於使用了?,=,&來作為分隔字元,所以其他的字元在發送時都採用了URL編碼方式,以避免混淆。歡迎光臨學網,收藏本篇文章 [1] [2]

 

$False$

 


       也可以將請求參數(格式相同)作為請求主體的一部分發送,不過這通常是Post命令的做法。
       Post命令格式:
POST forecast HTTP/1.0
Host: www.gefionsoftware.com
User-Agent:Mozilla/4.5 [en] (WinNT; I)
Accept: image/gif, image/jpeg, image/pjpeg,image/png, */*
Accept-language: en
Accept-charset: iso-88569-1,*,utf-8
city=Hermosa+Beach&state=CA
 
       Post行中的 forecast是action的名稱,後面是協議名。注意最後一行的查詢字串,沒有?開頭,並且是嵌入在Post主體中的。通常Post由form表單觸發。比如上面的命令對應的form表單為:
<form action: “/forecast” method=”POST”>
       City: <input name=”city” type=”text”>
       State: <input name=”state” type=”text>
<p>
<input type=”SUBMIT”>
</form>
       注意,這裡第一行加了屬性method=”POST”,如果不加的話,預設為GET。
HTTP協議的其它方法還有OPTIONS,HEAD,PUT,DELETE,TRACE等五個。但是這些方法使用的很少。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.