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 GMTthis 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() 獲取實體內容數據總結
- 上一篇: 梦到和女朋友订婚了是什么意思
- 下一篇: spring整合mybatis采坑