http協議: 對瀏覽器客戶端 和 伺服器端 之間資料傳輸的格式規範
1)使用火狐的firebug外掛程式(右鍵->firebug->網路)
2)使用谷歌的「審查元素」
get /day09/hello http/1.1 -請求行
host: localhost:8080 --請求頭(多個key-value物件)
user-agent: mozilla/5.0 (windows nt 6.1; wow64; rv:35.0) gecko/20100101 firefox/35.0
accept-language: zh-cn,en-us;q=0.8,zh;q=0.5,en;q=0.3
accept-encoding: gzip, deflate
connection: keep-alive
--乙個空行
name=eric&password=123456 --(可選)實體內容
#請求方式
常見的請求方式: get 、 post、 head、 trace、 put、 connect 、delete
常用的請求方式: get 和 post。
get 和 post的區別:
1)get方式提交
a)位址列(uri)會跟上引數資料。以?開頭,多個引數之間以&分割。
b)get提交引數資料有限制,不超過1kb。
c)get方式不適合提交敏感密碼。
d)注意: 瀏覽器直接訪問的請求,預設提交方式是get方式
2)post方式提交
a)引數不會跟著uri後面。引數而是跟在請求的實體內容中。沒有?開頭,多個引數之間以&分割。
b)post提交的引數資料沒有限制。
c)post方式提交敏感資料。
最重要的:
對於get方式的請求,瀏覽器會把http header和data一併傳送出去,伺服器響應200(返回資料);
而對於post,瀏覽器先傳送header,伺服器響應100 continue,瀏覽器再傳送data,伺服器響應200 ok(返回資料)。
#http協議版本
http1.0:當前瀏覽器客戶端與伺服器端建立連線之後,只能傳送一次請求,一次請求之後連線關閉。
http1.1:當前瀏覽器客戶端與伺服器端建立連線之後,可以在一次連線中傳送多次請求。(基本都使用1.1)
#請求資源
url: 統一資源定位符。如:http://localhost:8080/day09/testimg.html。只能定位網際網路資源。是uri 的子集。
uri: 統一資源標記符。如:/day09/hello。用於標記任何資源。可以是本地檔案系統,區域網的資源如:( 可以是網際網路。
accept: text/html,image/* -- 瀏覽器接受的資料型別
accept-charset: iso-8859-1 -- 瀏覽器接受的編碼格式
accept-encoding: gzip,compress --瀏覽器接受的資料壓縮格式
accept-language: en-us,zh- --瀏覽器接受的語言
host: www.it315.org:80 --(必須的)當前請求訪問的目標位址(主機:埠)
if-modified-since: tue, 11 jul 2000 18:23:51 gmt --瀏覽器最後的快取時間
referer: -- 當前請求來自於**
user-agent: mozilla/4.0 (compatible; msie 5.5; windows nt 5.0) --瀏覽器型別
cookie:name=eric -- 瀏覽器儲存的cookie資訊
connection: close/keep-alive -- 瀏覽器跟伺服器連線狀態。close: 連線關閉 keep-alive:儲存連線。
date: tue, 11 jul 2000 18:23:51 gmt -- 請求發出的時間
只有post提交的引數會放到實體內容中。
http/1.1 200 ok --響應行
server: apache-coyote/1.1 --響應頭(key-vaule)
content-length: 24
date: fri, 30 jan 2015 01:54:57 gmt
--乙個空行
this is hello servlet!!! --實體內容
http/1.1 200 ok --響應行
#http協議版本(和上面的一樣)
#狀態碼: 伺服器處理請求的結果(狀態)
常見的狀態:
200 : 表示請求處理完成並完美返回
302: 表示請求需要進一步細化。
404: 表示客戶訪問的資源找不到。
500: 表示伺服器的資源傳送錯誤。(伺服器內部錯誤)
#狀態描述
詳細的內容可以看這個:
location: -表示重定向的位址,該頭和302的狀態碼一起使用。
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= --表示定時重新整理
transfer-encoding: chunked
set-cookie:ss=q0=5lb_nq; path=/search --表示伺服器傳送給瀏覽器的cookie資訊(會話管理用到)
expires: -1 --表示通知瀏覽器不進行快取
cache-control: no-cache
pragma: no-cache
connection: close/keep-alive --表示伺服器和瀏覽器的連線狀態。close:關閉連線 keep-alive:儲存連線
HTTP請求和HTTP響應
客戶端連上伺服器後,向伺服器請求某個web資源,稱之為客戶端向伺服器傳送了乙個http請求,乙個完整 的http請求包括 描述客戶端的請求方式,請求資源名稱,使用的http協議版本號 請求方式get post 預設是get可以更改表單提交方式為post 區別主要在資料傳遞上 get可以在url位址後...
HTTP請求和響應
1 http請求包含的內容 1 http請求的請求行 2 http請求的請求頭 2 http響應包含的內容 1 http響應的狀態行 200表示成功接受請求並完成整個處理過程 302表示去新位址找資源 307和304表示去快取中找資源 404表示客戶請求資源不存在 403表示客戶沒有許可權獲取資源 ...
HTTP 請求和響應過程
一次完整的http請求過程從tcp三次握手建立連線成功後開始,客戶端按照指定的格式開始向服務端傳送http請求,服務端接收請求後,解析http請求,處理完業務邏輯,最後返回乙個http的響應給客戶端,http的響應內容同樣有標準的格式。無論是什麼客戶端或者是什麼服務端,大家只要按照http的協議標準...