1. 程式人生 > >HTTP學習備忘。

HTTP學習備忘。

GET /demo01 HTTP/1.1

Host: localhost:9090

Connection: keep-alive

Cache-Control: max-age=0

Upgrade-Insecure-Requests: 1

User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8

Accept-Encoding: gzip, deflate, br

Accept-Language: zh-CN,zh;q=0.9

Cookie: JSESSIONID=91B17CEC38787603CD1C26447126CD8E

解讀:

1.請求行

HTTP/1.1

http1.0 當瀏覽器客戶端和伺服器建立連線之後,只能傳送一起請求,一次請求連線後關閉。

http1.1 可以傳送多次請求。

測試:如果一個html裡面包含了3張圖片,那麼http協議每張圖片都要連線一次,如圖;

原因是使用了src標籤,引用了另外的資源。

/demo01

請求資源。

URL

:統一資源定位符。http://localhost:9090/testimgs.html

URI:統一資源標記符。/demo01 可以使https協議,也可以是files資源,可以標記任何資源,不含協議。

關係:URI+協議+(主機,埠,使用者資訊等) = URL

GET

請求方式:GetPostHeadTracePutConnectDelete

常用方式:getpost

表單提交

<form action=”url” method=”get/post”></form>

Get:引數會顯示在位址列中,提交引數資料有限制(不超過1kb),不完全

格式:?name=123&pwd=1334

問號開頭,多個引數以&隔開

GET /testMethod.html?name=123&pwd=1231&%E6%8F%90%E4%BA%A4=%E6%8F%90%E4%BA%A4 HTTP/1.1

Post:引數不會顯示

POST /testMethod.html HTTP/1.1

name=123&pwd=123&%E6%8F%90%E4%BA%A4=%E6%8F%90%E4%BA%A4(實體內容)

比較:

Get會將資料快取起來,post不能進行管道化傳輸

Get用於讀,post用於更新資料,比較好。

本質區別,get是安全的,冪等的,post是不安全,不冪等的。因為這個才導致了get方法快取,post不快取,get方法快post方法慢,因為讀操作的安全性高。

2.請求頭

Accept:資料型別,意思是瀏覽器可以接受的資料型別

Accept-Charset:瀏覽器接受的編碼格式

Accept-Encoding:瀏覽器接受的資料壓縮格式

Accept-Language:瀏覽器接受的語言

Host:(引數必須)當前請求訪問的目標地址(主機:埠)

If-Modified-Since:瀏覽器最後的快取時間

Referer:當前請求來自於哪裡

User-Agent:瀏覽器型別

Cookie:瀏覽器儲存的cookie資訊

Connection:close/keep-Alive:一次連線/保持連線

3.servlet編碼獲取請求頭。(Tomcathttp請求的那些都已經打包成HttpServletRequest類。

3.2 響應

HTTP/1.1 200

Content-Type: text/html;charset=utf-8

Content-Length: 32

Date: Fri, 16 Nov 2018 07:01:58 GMT

解讀:

1.響應行

HTTP/1.1 版本號

200 狀態碼

2.響應頭

Location 表示重定向的地址

Server 表示伺服器型別

Refresh 定時重新整理

Content-disposition 告訴瀏覽器以下載方式開啟資源

Set-cookie 伺服器傳送給瀏覽器的cookie資訊

Expires

Cache-control

Pragma     以上三個都是通知瀏覽器不進行快取

3.實體內容