http協議內容
前言:
http協議: 對瀏覽器客戶端 和 伺服器端 之間資料傳輸的格式規範
http1.0:當前瀏覽器客戶端與伺服器端建立連線之後,
只能傳送一次請求,一次請求之後連線關閉。
http1.1:當前瀏覽器客戶端與伺服器端建立連線之後,
可以在一次連線中傳送多次請求。(基本都使用1.1)
常見的請求方式: GET 、 POST、 HEAD、 TRACE、 PUT、 CONNECT 、DELETE
常用的請求方式: GET 和 POST
表單提交:
<form action="提交地址" method="GET/POST">
<form>
瀏覽器請求:
請求(瀏覽器-》伺服器)
GET /day09/hello HTTP/1.1
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,en-us;q=0.8,zh;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
伺服器響應:
響應(伺服器-》瀏覽器)
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Length: 24
Date: Fri, 30 Jan 2015 01:54:57 GMT
this is hello servlet!!!
Http請求:
三部分組成:請求行,請求頭,實體內容
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: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
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 /day09/hello HTTP/1.1 –》 請求方式:URI地址:HHTP協議
請求頭:
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: http://www.it315.org/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 -- 請求發出的時間
實體內容:
只有POST提交的引數會放到實體內容中
HttpServletRequest物件
後臺接受前臺HTTP請求封裝成物件。
那如何提取其中的資訊呢?
HttpServletRequest物件作用是用於獲取請求資料。
核心的API:
請求行:
request.getMethod(); 請求方式
request.getRequetURI() / request.getRequetURL()
請求資源
request.getProtocol() 請求http協議版本
請求頭:
request.getHeader("名稱") 根據請求頭獲取請求值
request.getHeaderNames() 獲取所有的請求頭名稱
實體內容:
request.getInputStream() 獲取實體內容資料
相關文章
- HTTP的協議頭內容的認識HTTP協議
- HTTP 協議HTTP協議
- [HTTP協議]HTTP協議
- http協議HTTP協議
- 內容開放協議 會成為內容產業標配嗎?協議產業
- 03 前端HTTP協議(圖解HTTP) 之 HTTP報文內的HTTP資訊前端HTTP協議圖解
- RTSP協議、RTMP協議、HTTP協議的區別協議HTTP
- http協議分析HTTP協議
- 理解http協議HTTP協議
- HTTP協議概述HTTP協議
- HTTP 協議類HTTP協議
- HTTP協議(2)HTTP協議
- 小解http協議HTTP協議
- 02 前端HTTP協議(圖解HTTP) 之 簡單的HTTP協議前端HTTP協議圖解
- HTTP 協議圖解HTTP協議圖解
- 瞭解HTTP協議HTTP協議
- HTTP協議那些事HTTP協議
- HTTP協議簡述HTTP協議
- HTTP 協議簡介HTTP協議
- Http協議簡介HTTP協議
- HTTP2 協議HTTP協議
- 簡述HTTP協議HTTP協議
- HTTP 協議完全解析HTTP協議
- HTTP協議基礎HTTP協議
- Http協議入門HTTP協議
- HTTP通訊協議HTTP協議
- 淺談HTTP協議HTTP協議
- HTTP 協議入門HTTP協議
- 圖解 HTTP 協議圖解HTTP協議
- HTTP 協議詳解HTTP協議
- HTTP協議概念篇HTTP協議
- HTTP協議詳解HTTP協議
- HTTP協議之:HTTP/1.1和HTTP/2HTTP協議
- HTTP協議-HTTP響應報文HTTP協議
- HTTP協議和MQTT協議對比誰更好HTTP協議MQQT
- 網路通訊協議-HTTP協議詳解!協議HTTP
- http協議學習系列(協議詳解篇)HTTP協議
- HTTP HSTS協議和 nginxHTTP協議Nginx