http協議:
超文本傳輸協議,說白了就是一種約定,一種數據傳輸格式,只不過它可以傳輸超文本
超文本指的是超越文本限制或着鏈接,比如我們用的圖片視頻音樂鏈接都屬於超文本
注意:發送http協議格式的數據是基於tcp傳輸協議的,傳輸之前需要先建立連接
http協議作用:
規定了瀏覽器和web服務器之間通信數據的格式,也就是瀏覽器和web服務器之間進行通信需要使用http協議
瀏覽器訪問web服務器的通信過程:
此處附加一張圖片
例如:百度服務器也就百度主機也叫物理服務器也叫根服務器,上面會運行一個web服務端程序,默認端口號是80,瀏覽器想訪問百度服務器,需要在瀏覽器地址欄輸入網址就可以訪問,但是之間有說過,瀏覽器想要和某個應用web服務器通信,要知道ip和端口號,但是為什么我們輸入的地址里面只有域名,沒有看到ip和端口號了?這里其實有人幫我們把域名解析成ip地址了,它就是DNS(域名解析服務器)
這里也附加圖片
小結
http協議是一種超文本傳輸協議,
http協議格式的數據傳輸是繼續tcp傳輸協議的,傳輸之前需要建立連接
http協議規定了瀏覽器和web服務器之間數據通信的數據格式
URL
統一資源定位符,通俗理解就是網絡中資源地址,也就是常說的網址
url組成:
協議部分http:// ,https://,tps://等
域名部分
資源路徑部分(接口名)
參數部分(?后面為第一個參數,后面其他的參數之間用&)
注意https協議默認端口號是443
http協議默認端口號是80
開發者工具:
谷歌瀏覽器F12查看http協議的通信過程
請求一次http/:www.baidu.com,提示有27個請求,百度除了請求網頁數據以外,還有圖片logo等,而這些資源我本地沒有,也要去跟服務器要,所以其他26個請求是http/:www.baidu.com請求所需要的資源,每一次請求都是一個請求響應的過程
Element:查看或修改網頁標簽
console:控制台,用來執行js的
sources:就是當前這個網頁所用到的靜態資源,比如圖片,js,css
network:用來查看http協議的通信過程的
Timeline: 時間線面板,記錄網站生命周期內所發生的各類事件
Profiles: 事件詳情面板
Application: 本地存儲,Session存儲等資源信息
Secuity: 判斷當前網頁是否安全
Audits: 網絡性能診斷
network詳解包括:
http請求的請求頭信息有一下幾點,
1-Headers:請求得主要信息,
包括請求地址:Request URL
請求方法:Request Method
請求狀態碼:Status CodeL(ok表示狀態描述)
遠程服務器主機ip地址:Remote Address
2-respons Headers響應頭信息,是服務器發送給瀏覽器得一些數據
3-request Headers請求頭信息,是瀏覽器發送給web服務器的一些數據,
view sources就是查看瀏覽器發送給服務器的一些原始數據,view pansed是查看解析后的數據,
Respons:響應數據,瀏覽器會把服務器響應的數據去解析,然后渲染成一個美麗的網頁,
http請求報文:
http請求報文:就是瀏覽器發送給服務的http協議數據;
分為兩種:
GET發送請求的報文:從服務器直接獲取數據
POST發送請求報文:向web服務器提交數據
get請求報文詳解
# http請求報文詳解
# 第一行:請求行
# GET:請求方法,/web/user/latestVersionNumber:請求路徑,HTTP/1.1:http協議版本
GET /web/user/latestVersionNumber HTTP/1.1
# 以下行都叫請求頭
# Host:服務器的主機ip地址和端口號(http協議默認80在這里不顯示,默認端口號是看不見的,能看見的一般是指定端口號)
Host: devgateway.shangdundata.com
# 和服務端程序保存長連接,當客戶端和服務端有一段時間沒有進行通信,那么服務端程序會主動向客戶端斷開連接,要釋放資源
Connection: keep-alive
sec-ch-ua: "Google Chrome";v="95", "Chromium";v="95", ";Not A Brand";v="99"
# 告訴服務端程序,客戶端程序可以接收的數據格式
Accept: application/json, text/plain, */*
X-UserId: e69789512b42a6021b376521081d65f4
X-Token: 4c48e603-07cb-4bdb-8da0-ba752d5dd412
sec-ch-ua-mobile: ?0
# 用戶代理 通俗講就是客戶端程序名稱(Windows chrome),后續學習爬蟲的時候可以根據是否有User-Agent進行是否反爬
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36
sec-ch-ua-platform: "Windows"
Origin: https://dev.changandu.com
Sec-Fetch-Site: cross-site
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: https://dev.changandu.com/
# 告訴服務端程序支持的壓縮算法
Accept-Encoding: gzip, deflate, br
# 告訴服務端程序支持的語言
Accept-Language: zh-CN,zh;q=0.9
coolie:客戶端用戶身份的唯一標識
注意:這里為什么要講每項都要一個\r\n,就是以后自己寫一個協議進行請求時就要按照http協議規定的格式進行去請求服務器,不然服務器是不會給你數據的;
http get請求報文格式
請求行\r\n
請求頭\r\n
空行\r\n
提示:每項信息之間都需要一個\r\n,是http協議規定的
post請求報文詳解