滲透學習筆記(二)--資料包
網站解析
網站搭建參考部落格:
https://www.cnblogs.com/GodSince/p/12010184.html
HTTP/S資料包
包(Packet)是TCP/IP協議通訊傳輸中的資料單位,一般也稱“資料包”。
TCP/IP協議是工作在OSI模型第三層(網路層)、第四層(傳輸層)上的,幀工作在第二層(資料鏈路層)。上一層的內容由下一層的內容來傳輸,所以在區域網中,“包”是包含在“幀”裡的。
Request 請求資料包
Proxy 代理伺服器
Response 返回資料包
-
http與https的區別:
• https協議需要到ca申請證書,一般免費證書較少,因而需要一定費用。
• http是超文字傳輸協議,資訊是明文傳輸,https則是具有安全性的ssl加密傳輸協議。
• http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443。
• http的連線很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份 認證的網路協議,比http協議安全。 -
HTTP和HTTPS的簡要通訊過程
(1)HTTP通訊過程
建立連結——>傳送請求資料包——>返回響應資料包——>關閉連線
○ 瀏覽器建立與web伺服器直接的連線
○ 瀏覽器將請求資料打包(生成請求資料包)併發送到web伺服器
○ web伺服器將處理結果打包(生成響應資料包)併發送給瀏覽器
○ web伺服器關閉連線
(2)HTTPS通訊過程
Request請求資料包資料格式
一個請求由四個部分組成:請求行、請求頭標、空行和請求資料
- 請求行:請求型別/請求資源路徑、協議的版本和型別
請求行由三個標記組成:請求方法、請求URL和HTTP版本,它們用空格分隔。
例如: GET /index.html HTTP/1.1
HTTP 規劃定義了8種可能的請求方法:
GET:檢索URL中標識資源的一個簡單請求
HEAD:與GET方法相同,伺服器只返回狀態行和頭標,並不返回請求文件
POST:伺服器接收被寫入客戶端輸出流中資料的請求
PUT:伺服器儲存請求資料作為指定URL新內容的請求
DELETE:伺服器刪除URL中命令的資源的請求
OPTIONS:關於伺服器支援的請求方法資訊的請求
TRACE:web伺服器反饋HTTP請求和其頭標的請求
CONNECT:已文件化,但當前未實現的一個方法,預留做隧道處理
-
請求頭:一些鍵值對,瀏覽器與web伺服器之間都可以傳送,特殊的某種含義
HOST:主機或域名地址
Accept:指瀏覽器或其他客戶可以接受的MIME檔案格式,servlet可以根據它判斷並返回適當的檔案格式
User-Agent
Host:對應網址URL中的web名稱和埠號
Accept-Language:指出瀏覽器可以接受的語言種類,如en或者en-us,指英語
connection:用來告訴伺服器是否可以維持固定的HTTP連線、http是無連線的,HTTP/1.1使用Keep-Alive為預設值,這樣當瀏覽器需要多個檔案時(比如一個HTML檔案和相關的圖形檔案),不需要每次都建立連線
Cookie:瀏覽器用這個屬性向伺服器傳送Cookie。Cookie是在瀏覽器中寄存的小型資料體,他可以記載伺服器相關的使用者資訊,也可以用來實現會話功能
Referer:表明產生請求的網頁URL,這個屬性可以用來跟蹤web請求是從什麼網站來的。如比從網頁/icconcept/index.jsp中點選一個連結到網頁/icwork/search,再向伺服器傳送的GET/icwork/search中的請求中,Referer是http://hostname:8080/icconcept/index.jsp
Content-Type :用來表明request的內容型別,可以用HttpServeletRequest的getContentType()方法取得。
Accept-Charset:指出瀏覽器可以接受的字元編碼
Accept-Encoding:指出瀏覽器可以接受的編碼方式。編碼方式不同於檔案格式,它是為了壓縮檔案傳遞速度。瀏覽器在接收到web響應之後再解碼,然後再檢查檔案格式 -
空行:請求頭與請求體之間用一個空行分開
最後一個請求頭標之後是空行,傳送回車符和退行,通知伺服器以下不再有頭標 -
請求體:要傳送的資料(一般post提交時候會用)
使用POST傳送,最常使用的是Content-Type和Content-Length頭標
GET / HTTP/1.1
Host: www.baidu.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Cookie: BAIDUID=DF85C12211175FD67D599BC8A06EB4B2:FG=1; BIDUPSID=DF85C12211175FD6D8AC7AF7356EF11F; PSTM=1571798152; BD_UPN=13314752; COOKIE_SESSION=251208_1_7_5_8_6_0_0_5_5_0_0_251207_0_1_0_1580795676_1580539587_1580795675%7C9%235096250_55_1580539585%7C9; BDRCVFR[Fc9oatPmwxn]=mk3SLVN4HKm; delPer=0; BD_CK_SAM=1; PSINO=1; H_PS_PSSID=1465_21124_26350_30496; H_PS_645EC=d0f32cF5kQJ3ZcmKhkebQhVlmvrVbJe34vcNJntPlQBU7X%2BEF0T1MJCfpt5UZln7q4OU; BDORZ=FFFB88E999055A3F8A630C64834BD6D0; BD_HOME=0
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Response返回資料包格式
- Response返回資料包資料格式
一個響應由四個部分組成:狀態行、響應頭標、空行、響應資料 - 狀態行:協議版本,數字形式的狀態程式碼和狀態描述,各元素之間用空格進行分割
HTTP響應碼
1XX:資訊,請求收到,繼續處理
2XX:成功,行為被成功的接收、理解和採納
3XX:重定向,為了完成請求,必須進一步執行的動作
4XX:客戶端錯誤
5XX:伺服器錯誤
200:存在檔案
403:存在資料夾
3XX:均可能存在
404:不存在檔案及資料夾
500:均可能存在 - 響應頭標:包含伺服器型別、日期、長度、內容型別等
像請求頭標一樣,它們指出伺服器的功能,標識出響應資料的細節 - 空行:響應頭與響應體之間用空行隔開
最後一個響應頭標之後是一個空行,傳送回車符和退行,表面伺服器一下不再有頭標。
本文來自作者:CK_0ff,轉載請註明原文連結:https://www.cnblogs.com/Ck-0ff/p/15783745.html