一、HTTP協議:
HTTP是hypertext transfer PRotocol(超文本傳輸協議)的簡寫,它是TCP/ip協議的一個應用層協議,用于定義WEB瀏覽器與WEB服務器之間交換數據的過程。
HTTP協議基于請求響應模型,一次請求對應一次響應,請求只能由客戶端發出,服務器只能被動的等待請求做出響應。
HTTP1.0協議和HTTP1.1協議的區別:在HTTP1.0協議中,客戶端與web服務器建立連接后,只能獲得一個web資源;HTTP1.1協議,允許客戶端與web服務器建立連接后,在一個連接上獲取多個web資源。
二、HTTP請求:
客戶端連上服務器后,向服務器請求某個web資源,稱之為客戶端向服務器發送了一個HTTP請求。一個完整的HTTP請求包括如下內容:一個請求行、若干請求頭、以及實體內容。
舉例: GET /books/java.html HTTP/1.1 Accept: */* Accept-Language: en-us Connection: Keep-Alive Host: localhost Referer: http://localhost/links.asp User-Agent: Mozilla/4.0 Accept-Encoding: gzip, deflate
請求行 GET /books/java.html HTTP/1.1 請求方式:七種請求方式: POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT
真正使用的時候:POST/GET GET請求方式和POST請求區別在于請求參數在傳遞的過程中方式不同 如果是GET提交,請求參數將會附加在請求的URL后面作為請求地址的一部分帶到服務器端,可以傳輸的數據大小有限制一般不允許超過1K. 如果是POST提交,請求參數將會在http請求的實體內容中進行傳輸,這種方式傳輸的數據沒有大小限制.
利用form表單提交數據時,form表明明確的聲明要用POST提交,這是請求參數就是POST提交 除此以外所有方式的請求參數都是GET提交
若干請求頭--消息頭
Accept: */* Accept-Charset: ISO-8859-1 Accept-Encoding: gzip,compress Accept-Language: en-us,zh-cn Host: www.it315.org:80 If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT Referer: http://www.it315.org/index.jsp User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) Cookie: Connection: close/Keep-Alive Date: Tue, 11 Jul 2000 18:23:51 GMT
三、HTTP響應
一個HTTP響應代表服務器向客戶端回送的數據,它包括:一個狀態行、若干響應頭(消息頭)、以及實體內容。
狀態行:HTTP/1.1 200 OK 協議版本 狀態碼 原因敘述<CRLF> 狀態碼--用來表示本次請求的處理結果的代碼 200 表示成功接收請求并已完成整個處理過程 302對象已移動 304/307 未修改/臨時重定向 404 客戶端的請求有錯誤 500 服務器端出現錯誤
若干響應頭 Location: http://www.it315.org/index.jsp Server:apache tomcat Content-Encoding: gzip Content-Length: 80 Content-Language: zh-cn Content-Type: text/html; charset=GB2312 Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT Refresh: 1;url=http://www.it315.org Content-Disposition: attachment;filename=aaa.zip Transfer-Encoding: chunked Set-Cookie:SS=Q0=5Lb_nQ; path=/search ETag: W/"83794-1208174400000" Expires: -1 ---- 通知瀏覽器是否緩存當前資源 ,如果這個頭的值是一個以毫秒為單位值就是通知瀏覽器緩存資源到指定的時間點,如果值是0或-1則是通知瀏覽器禁止緩存 Cache-Control: no-cache -- 通知瀏覽器是否緩存資源 Pragma: no-cache -- 通知瀏覽器是否緩存資源 之所以三個頭是一個功能,是因為歷史原因.不同的瀏覽器對這三個頭支持的不同,一般來說這三個頭要同時使用確保不同的瀏覽器都能實現控制緩存的功能 Connection: close/Keep-Alive Date: Tue, 11 Jul 2000 18:23:51 GMT
新聞熱點
疑難解答