-
URL(RFC 2396)
scheme://username@server:port/path?query
scheme和hostname的部份是不分大小寫的,但是其它的部份大小寫是不同的。
URL可使用的字元是ASCII a-z, A-Z, 0-9和: @ & + $ ( ) /這些符號,其它的字元必須被編碼才行。(Ex:space = %20)
-
HTTP Request(RFC 2616)
GET /light_button.png HTTP/1.1" 200 4005
Host: www.yahoo.com.tw
user-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13
[blank line]HTTP Request有三個部份:1、Request Line 2、Header 3、Body of the request(用於傳遞form的參數)
Request Line是客戶端用來說明想要什麼東西,常用的有GET和POST兩種方法。
Header為一連串的key/value,在HTTP/1.1中,Host為必要的header,其它的header不一定會被使用。Header最後必需以一空白列當做結束。
message可傳遞任意資料,如果message中有資料,則Content-Type和Content-Length兩個 headers會被設定。使用GET queries時,不會有任何的附加資料,所以message部份為空,而用POST queries時,會使用message部份來傳遞參數(資料)。
-
HTTP Response
HTTP Resonpse也有三個部份:1、 Status Line 2、Headers 3、Optional Body
Status Line說明Server是用何種通訊協定,包含了Status Code和簡短的訊息。 (100s:informational, 200s:Successful, 300s:Redirection, 400s:Client Error, 500s:Server Error)
Header部份讓Server在response中附加更多額外的資訊,最後也是以一空白列做為結尾。
body中可為任何資料,在一般的Request中,為html文件。若發生錯誤時,body是傳回由Server產生的 Error message。