HTTP協議_入門知識
【什麼是HTTP協議】
對 瀏覽器客戶端 和 伺服器端之間的資料傳輸的格式規範。
客戶端連上web伺服器後,若想獲得web伺服器中的某個web資源,需遵循一定的通訊格式,HTTP協議用於定義客戶端與web伺服器通訊的格式。
HTTP(hypertest transfer protocol),超文字傳輸協議,它是TCP/IP協議的一個應用層協議,用於定義WEB瀏覽器和Web伺服器之間交換資料的過程。
【檢視http協議的工具】
* 火狐的firebug外掛
* 谷歌的"審查元素"
* 使用系統自帶的telnet工具(遠端訪問工具)
1. telnet localhost 8080 訪問TomCat伺服器
2. ctrl+] 回車 可以看回顯
3. 輸入請求內容
GET /MyWeb/hello.html HTTP/1.1 Host: localhost:8080
4. 回車,即可看到伺服器響應的資訊
請求內容無法在Talnet視窗顯示的解決方法:
telnet localhost 8080,回車進入talnet視窗,在Telnet視窗中按下“Ctrl+]”;然後,輸入“set localecho”命令,再連續按兩次Enter鍵,再輸入HTTP請求即可見。
【HTTP請求】
HTTP請求:客戶端連上伺服器後,向伺服器請求某個web資源,稱之為客戶端向伺服器傳送了一個HTTP請求。一個完整的HTTP請求包括如下內容:
一個請求行、若干請求頭、實體內容。
[ 在tomcat伺服器的webapp下新建如下web應用 ]
啟動Tomcat伺服器,在ie瀏覽器中輸入:http://localhost:8080/myWeb/hello.html
【請求行】
[ 請求方式 ]
請求行中的GET稱之為請求方式,請求方式有;
POST、GET、PUT、DELETE、HEAD、OPTIONS、TRACE
常用的請求方式:POST、GET
1.使用者如沒有設定,預設情況下瀏覽器向伺服器傳送的都是get請求,例如在瀏覽器直接輸地址訪問,點選超連結都是get。
2.使用者如果想把請求方式改為POST,可以通過更改表單的提交方式實現。
[ POST 和 GET的區別 ]
不管POST還是GET,都用於向伺服器請求某個WEB資源,這兩種方式的區別主要表現在資料傳輸上:
* GET請求方式:可以在請求的URL地址後以?的形式帶上交給伺服器的資料,多個資料之間以&進行分割,
例如:GET /myWeb/hello.html?name=zhangsan&id=10086 HTTP/1.1
注意:GET請求,其URL地址後附帶的引數是有限制的,其資料容量通常不能超過1K。
* POST請求方式:可以在請求的實體內容中向伺服器傳送資料
注意:傳送的資料量無限制。(比如傳輸檔案,使用POST請求來傳輸檔案)
【訊息頭分析】
Accept: text/html,image/* --告訴服務端,客戶端瀏覽器所接受的資料型別
Accept-Charset: ISO-8859-1 --告訴服務端,瀏覽器採用的資料編碼格式
Accept-Encoding: gzip,compress --告訴服務端,瀏覽器接受的資料壓縮格式
Accept-Language: en-us,zh- --告訴服務端,瀏覽器接受的語言
Host: www.7k7k.com:80 --請求發出的主機和埠(必須),通過這個頭告訴伺服器,想訪問的主機和埠
If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT --瀏覽器快取的最後修改時間
Referer: http://www.7k7k.com/index.jsp -- 當前請求來自於哪裡 (防止非法連結),告訴伺服器,它是從哪個資源來訪問伺服器
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 --請求發出的時間
【HTTP響應】
一個HTTP響應,代表伺服器向客戶端回送的資料,它包括:
一個狀態行、若干響應頭(訊息頭)、實體內容。
其中的一些訊息頭和實體內容都是可選的,訊息頭和實體內容之間要用空行隔開。
補充對應給的響應正文(即實體內容)
【HTTP響應--------狀態行(響應行)】
[ 格式 ] HTTP版本號 狀態碼 原因敘述<CRLF>
[ 例子 ] HTTP/1.1 200 OK
[ 關於狀態碼 ]
狀態碼用於表示伺服器對請求的處理結果,它是一個三位的十進位制數。響應碼分為5大類。
常見狀態碼:
200:請求處理完成,成功返回!
302:需要瀏覽器進一步請求,才能完成。
404:瀏覽器端的錯誤。沒有找到資源。
500:伺服器端的錯誤。
【HTTP響應---響應頭】
Location: http://www.7k7k.com/index.jsp --重定向的地址。結合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=http://www.it315.org --定時重新整理或每隔n秒跳轉資源,告訴瀏覽器多長時間重新整理一次
Content-Disposition: attachment; filename=aaa.zip -- 伺服器告訴給瀏覽器以下載方式開啟資源
Transfer-Encoding: chunked
Set-Cookie:SS=Q0=5Lb_nQ; path=/search -- 伺服器傳送給瀏覽器的cookie資料
Expires: -1 --通知瀏覽器不使用快取(-1或0,是不快取)
Cache-Control: no-cache
Pragma: no-cache
Connection: close/Keep-Alive --連線狀態
Date: Tue, 11 Jul 2000 18:23:51 GMT --響應發出的時間
相關文章
- Http協議常用知識HTTP協議
- Http協議入門HTTP協議
- HTTP 協議入門HTTP協議
- HTTP協議知識總結HTTP協議
- HTTP協議冷知識大全HTTP協議
- HTTP入門知識HTTP
- HTTP協議知識點總結HTTP協議
- 搞定PHP面試 - HTTP協議知識點整理PHP面試HTTP協議
- 詳解前端HTTP協議入門教程前端HTTP協議
- 網路基礎與協議入門——(1)HTTP協議重點協議HTTP
- HTTP 協議知識點總結(二)HTTPSHTTP協議
- 網路安全網路協議知識點中,http協議是什麼?協議HTTP
- 快速認識HTTP協議HTTP協議
- 網路篇 - http協議從入門到精通HTTP協議
- 爬蟲入門系列(一):快速理解HTTP協議爬蟲HTTP協議
- 爬蟲入門系列(一):快速理解 HTTP 協議爬蟲HTTP協議
- 小知識二、Then協議協議
- 淺顯易懂的前端知識點(二)——HTTP協議基礎前端HTTP協議
- HTTP協議(包含與HTTPS的區別) 知識筆記HTTP協議筆記
- RTMP協議相關知識協議
- 軟體測試必須掌握的http網路協議知識HTTP協議
- 軟體測試必須掌握的 http 網路協議知識HTTP協議
- 網路協議入門協議
- internet 協議入門協議
- HTTP 協議HTTP協議
- [HTTP協議]HTTP協議
- http協議HTTP協議
- 網路協議基礎知識協議
- Docker入門知識Docker
- .NET入門知識
- http協議請求方法有哪些?網路安全技術入門HTTP協議
- HTTP的協議頭內容的認識HTTP協議
- WebSocket協議入門介紹Web協議
- RTSP協議、RTMP協議、HTTP協議的區別協議HTTP
- http協議分析HTTP協議
- 理解http協議HTTP協議
- HTTP協議概述HTTP協議
- HTTP 協議類HTTP協議