HTTP協議概述
HTTP是HyperText Transfer Protocol(超文本傳輸協議)的簡寫,傳輸HTML文件。
用於定義WEB瀏覽器與WEB服務器之間交換數據的過程及數據本身的格式。
1、查看http協議的工具
1)使用火狐瀏覽器的firebug插件或谷歌瀏覽器的”審查元素”(不同瀏覽器略有不同)
2)使用系統自帶的telnet工具(遠程訪問工具。在Windows命令行模式中使用,如果該命令不能使用,擇需要在控制面板->程序->程序和功能->啓動或關閉Windows功能,開啓該命令。)
2、請求方式
常見的請求方式: GET,POST, HEAD,TRACE, PUT,CONNECT ,DELETE
常用的請求方式: GET和 POST
1) GET 一般用於獲取/查詢資源信息,而POST一般用於更新資源信息
2) 根據HTTP規範,POST表示可能修改服務器上的資源請求。
3、請求資源
URL:全稱是統一資源定位符。
URI:統一資源標記符。
4、Http協議版本
http1.0:當前瀏覽器客戶端與服務器端建立連接之後,只能發送一次請求,一次請求之後連接關閉。
http1.1:當前瀏覽器客戶端與服務器端建立連接之後,可以在一次連接中發送多次請求。(基本都使用1.1)
5、GET和POST區別
<!-- 表單提交 -->
<form action="提交地址" method="GET/POST">
<form>
(1)GET方式提交 由瀏覽器提交get方式數據到服務器
下面爲請求內容
--請求行 get請求請求行和請求主體在一起
GET /test/RequestTest?name=wang&password=111 HTTP/1.1
Host: localhost:8080 --請求頭(多個key-value對象)
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:53.0) Gecko/20180207 Firefox/53.0 -- 當前訪問的電腦信息,和瀏覽器
--可接受的文件類型
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
--支持的語言
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
--瀏覽器接受的數據壓縮格式
Accept-Encoding: gzip, deflate
-- 當前請求來自於哪裏
Referer: http://localhost:8080/test/test.html
-- 瀏覽器跟服務器連接狀態。close: 連接關閉 keep-alive:保存連接。
Connection: keep-alive
Upgrade-Insecure-Requests: 1
(a)地址欄會跟上參數數據。以?開頭,多個參數之間以&分割。
(b)GET提交參數數據有限制,不超過1KB。
(c)GET方式不適合提交敏感密碼。
(d)瀏覽器直接訪問的請求,默認提交方式是GET方式
(2)POST方式提交
由瀏覽器提交post方式數據到服務器
--請求行
POST /test/RequestTest HTTP/1.1
--請求頭
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:53.0) Gecko/20180207 Firefox/53.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 59 -- get提交方式沒有() HTTP消息實體的傳輸長度
Referer: http://localhost:8080/test/test.html
Connection: keep-alive
Upgrade-Insecure-Requests: 1
--請求主體
name=wang&password=123456
(a)參數不會跟着URI後面。參數而是跟在請求的實體內容中。沒有?開頭,多個參數之間以&分割。
(b)POST提交的參數數據沒有限制。
(c)POST方式可以提交敏感數據(如提交密碼比較安全)。
Servlet編程
1、什麼是Servlet?
servlet 是運行在 Web 服務器中的小型 Java 程序(即:服務器端的小應用程序)。servlet 通常通過 HTTP(超文本傳輸協議)接收和響應來自 Web 客戶端的請求。