一、HTTP協議
1.1協議的作用及版本
1.1.1: HTTP是Hyper Text TransferProtocol(超文本--html傳輸協議)。
1.1.2: HTTP協議的作用用戶描述客戶端與服務器間的數據傳遞的。
1.1.3:Http協議的版本:
1.0:特點:每次請求服務器上的資源都要建立新的連接,響應完畢后都會關閉連接。是無狀態的協議.
1.1:特點:在一次TCP/IP連接的基礎上可以發出多次請求和得到多次的響應。比1.0多了一些請求和響應頭。
1.2協議的組成
1.2.1請求部分:
GET /App1/1.html HTTP/1.1
Accept: */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0;Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR3.0.4506.2152; .NET CLR 3.5.30729)
Host: localhost:8080
Connection: Keep-Alive
username=admin&password=123
請求部分由三部分組成的:
- 請求行:位于第一行
- 請求消息頭:從第二行開始至第一個空行結束
- 請求正文:從第一個空行之后的都是正文
1.2.2響應部分:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Accept-Ranges: bytes
ETag: W/"65-1366335797484"
Last-Modified: Fri, 19 Apr 2013 01:43:17 GMT
Content-Type: text/html
Content-Length: 65
Date: Fri, 19 Apr 2013 02:06:23 GMT
Warnning:w1
Warnning: w2
hello http
<a href="b.html">click</a>

響應部分由三部分組成的:
- 響應行:位于第一行
- 響應消息頭:從第二行開始至第一個空行結束
- 響應正文:從第一個空行之后的都是正文
1.3協議詳細講解
- 請求行:GET /App1/1.html HTTP/1.1
- GET:請求方式。默認的請求方式。其他常用的請求方式還有POST。
- GET的特點:默認的請求方式。
- /App1/c.html?username=sdsfds&password=234324
把表單的請求的數據放在了請求的URI的后面。?username=sdsfds&password=234324這樣不好:暴露數據;請求行長度有限。
POST的特點(經常使用的):借助HTML中的form表單。<form action="c.html" method="post">
請求參數出現在正文部分。長度木有限制。相對安全。
/App1/1.html:請求的資源的URI。
HTTP/1.1:客戶端使用的協議的版本
- 響應行:HTTP/1.1 200 OK
- HTTP/1.1:服務器用的協議版本
- 200:響應碼。代表服務器處理的結果的一種表示
- 200:正常
- 302/307:重定向
- 304:服務器的資源沒有被修改
- 404:請求的資源不存在
- 500:服務器報錯了
- OK:響應碼描述
- 請求消息頭:向服務器傳遞附加信息
- Accept:通知服務器,瀏覽器可以接受的MIME類型。(文件系統中用文件擴展名區分數據的類型。網絡上用MIME類型來區分數據類型。Tomcat\conf\web.mxl)
- MIME類型名稱:大類型/小類型
- Accept-Charset:通知服務器,瀏覽器支持的字符集
- Accept-Encoding:通知服務器,瀏覽器能夠解碼的數據壓縮方式。比如:gzip
- Accept-language:通知服務器,所希望的語言
- Host:請求的主機和端口
- *Referer:是一個URL地址。取值是當前頁面之前的那個頁面地址的。防盜鏈
- *Content-Type:通知服務器,請求正文的MIME類型。
- 取值:application/x-www-form-urlencoded默認值對應的是form表單的enctype屬性
- If-Modified-Since:通知服務器,緩存的文件的最后修改時間。
- User-Agent:通知服務器,瀏覽器類型.
- Content-Length:表示請求消息正文的長度
- Connection:表示是否需要持久連接。如果服務器看到這里的值為“Keep -Alive”,或者看到請求使用的是HTTP 1.1(HTTP 1.1默認進行持久連接
Cookie:這是最重要的請求頭信息之一(會話有關)
響應消息頭:
*Location:通知客戶端,指示新的資源的位置(結合302/307來用。請求重定向)
Server:通知客戶端,服務器的類型
*Content-Encoding:通知客戶端,響應正文的壓縮編碼方式。常用的是gzip。
*Content-Length:通知客戶端響應正文的數據大小
*Content-Type:通知客戶端響應正文的MIME類型
*Refresh:讓瀏覽器自動刷新。取值為整數(刷新的時間間隔,單位是秒)
Refresh:3
Refresh:3;URL=其他資源的URI
*Content-Disposition:通知客戶端,以下載的方式打開資源。
Content-Disposition:attachment;filename=1.jpg
*****Set-Cookie:SS=Q0=5Lb_nQ; path=/search服務器端發送的Cookie(會話有關)
*Expires: -1 網頁的有效時間。單位是毫秒
*Cache-Control: no-cache (1.1)
*Pragma: no-cache (1.0) 通知客戶端不要緩存
文章鏈接:
全面理解HTTP(http://www.lxweimin.com/p/81632fea327c)
一步一步教你(https 抓包http://www.lxweimin.com/p/1837203986f5)
圖解SSL/TLS協議(http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html)