http協議

網絡和http協議理論

協議pritocol:兩臺計算機互相通訊,需要定義規則,如何發現對方、誰先發起通訊、通訊語言規則、結束通訊表示。

##TCP/TP協議族
協議族:不止一個協議,一堆協議的總稱。

  • TCP UDP:傳輸控制協議。
  • TP:網絡地址
  • HTTP:heper text transfer protocol 超文本傳輸協議。html
  • DNS:域名解析協議
  • PPPoE:撥號上網、連接網絡服務器。例如聯通寬帶我世界撥號上網。
  • FTP:file transfer 文件傳輸。
  • ICMP SNMP:mail 郵件
  • IEEE 802.3:ethernet 以太網,局域網。802.11無線網卡WiFi。
  • ARP:地址解析協議。

##網絡通訊概念
客戶端→協議轉發 到各個節點路由→服務端
客戶端:個人電腦
服務器端:別人的電腦,提供網站服務的內容的平臺。

##http協議
形如 http://www.baidu.com
瀏覽器會自動默認省略http前綴。
網頁是有html書寫的。http協議非常流行。

###三次握手
http協議爲了準確送達和請求數據,不考慮規則細節,宏觀上主要三個步驟:
1.發送syn synchronize同步表示。目的看網絡通不通,服務器是否能提供服務。
2.服務器端 發送 syn/ack acknowledgment
標示。告訴客戶端我準備好了。你可以請求我。
3.客戶端收到 syn/ack 標示後,開始請求。

###TCP協議
報文:按照一定結構封裝的數據信息,例如http報文包含信息目的地ip請求方法,請求url地址等。
http協議底層基於TCP協議,宏觀上看,http報文通過三次握手放鬆到服務器端,底層上http請求會先拆分爲一段段的TCP報文。TCP報文包含請求地址、請求信息等。當服務器到tcp報文後再組合成http報文。
場景:http協議、網頁信息。

###UDP協議
user datagram protocol 用戶數據報文協議。
客戶端直接與服務端傳輸數據,不需要握手和校驗。
所以UDP協議可能數據會丟失或傳輸錯誤。優點傳輸快。
場景:視頻、遊戲數據。所以少量數據報丟失不影響大致體驗。

##dns 協議
域名domain:形如www.baidu.com
www.lowo.com www.xx.cn
ip地址:形如 192.168.221.73
比較:域名好像人的名字,優點好記。ip地址好像人的身份證號,優點易被計算機處理。
本來計算機網絡就是靠ip地址區分和訪問,問題一,當你訪問的網站多達上百個小時,數字組合的ip地址很難記,問題二,公司升級或更換電腦遷移部署在服務器上的網站,IP地址變化,不容易通知老客戶網站,導致老客戶訪問不了網站不好維護。所以發明了域名。域名有英文和數字組成,好記,建立域名到ip地址的映射關係。
如果百度huan服務器,只用維護修改映射關係,普通仍然訪問域名不需要變化。

DNS:domain name server 域名轉化協議。
DNS 服務器:各個網站 域名轉換ip的關係需要記錄到一個服務器上服務大衆。

##流程
需要:訪問taobao.com
1.客戶端訪問當地運營商的DNS服務器。請求查詢taobao.com的ip地址。
2.DNS服務器返回taobao.com的ip地址。
3.根據ip地址請求taobao服務器

###hosts文件
打開一個網頁 有信息有圖片,請求幾十次。如果每一次都查詢dns服務器,將消耗資源,所以瀏覽器會緩存映射關係,電腦本地也有一個dns關係緩存配置文件,hosts。windows系統。
C:/.windows/system32/drivers/etc/hosts。用管理員權限記事本打開可以編輯。hosts裏的定義優先級最高。如果瀏覽器訪問一個網站,會先去hosts文件查詢,如果查到ip直接訪問,如果沒查到再去查詢dns服務器。

##pycharm破解原理
百度“lanyu”itellij破解碼

如果直接把激活碼放入pycharm激活,會幾秒提示失敗,原理pycharm會每隔一段時間自動請求官方服務驗證碼激活真僞,

###牆的原理
DNS污染:運營商控制着DNS服務器,修改了一些網站的映射信息。例如www.google.com →67.22.22.22,把真實的ip地址置換爲一個錯誤的IP地址編程 www.google.com→0.0.0.0,這時用戶就無法訪問。

###翻牆的一種方法
修改hosts文件。因爲牆的原理污染dns服務器,hosts文件優先級更高。所以可以網上找別人整理好的hosts文件,內容是常用國外網址和對應的真實的ip地址。優點免費、易於修改,缺點:突破封鎖能力一般。
尋找hosts文件:gith 碼雲上搜索“hosts”,百度“laoD"

##局域網 ARP
ARP協議:地址解析,發現局域網中的其它電腦地址並探測。
IP地址:網絡分配的一個地址。就好像大街上的門牌號。
mac地址:物理地址,形如00-OE-01-AA-12-12,每一塊網卡有一個全球唯一的編號。電腦網絡硬件唯一標示。

##ip協議
ip地址 形如45.222.222.21,由4個字節組成,每一段的範圍0-255.
##分類
A類:(1.0.0.0-126.0.0.0)(默認子網掩碼:255.0.0.0或0xFF000000)
第一字節爲網絡號,後三個字節爲主機號。該類IP地址的最前面爲“0”,所以地址的網絡號取值於1~126之間。一般用於大型網絡。
B類:(128.1.0.0-191.255.0.0)(默認子網掩碼:255.255.0.0或0xFFFF0000)
前兩個字節爲網絡號,後兩個字節爲主機號。該類ip地址的最前面爲“10”,所以地址的網絡號取值於128~191之間。一般用於中等規模網絡。
C類:(192.0.1.0-223.255.255.0)((子網掩碼:255.255.255.0或 0xFFFFFF00)
前三字節爲網絡號,最後一個字節爲主機號。該類IP地址的最前面爲“110”,所以地址的網絡號取值於192~233之間。一般用於小型網絡。
D類:是多播地址。該類Ip地址的最前面爲“1110”,所以地址的網絡號取值於224~239之間。一般用於多路廣播用戶[1].
E類:是保留地址。該類IP地址的最前面爲“1111”,所以地址的網絡號取值於240~255之間。
回送地址:127.0.0.1。 也是本機地址,等效於localhost或本機IP。
##特殊地址
127.0.0.1 localhost,本地ip地址,代表你自己正在操作的電腦。
0.0.0.0 ,空地址,請求都會被丟棄。
169.254*.* ,保留地址, dhcp服務無法分配。
192.168.. ,局域網地址。

###局域網地址
10開頭的。192.168開頭的。
例如192.168.1.* , 轉換成二進制 前24位固定,後8位排列組合分配給網段內機器。
對應二進制 11000000 10101000 00000001 00000001-11111111
網關:一般 192.168.1.1 ,一個局域網段的門口。一般給路由器使用。
支持的局域網ip:192.168.1. ---- 192.168.1.254,兩百多臺機器。
下一間屋子就可以換下第3端數字繼續 192.168.2.*
同一局域網段內:192.168.221.50→192.168.221.73
跨局域網段(路由器連接並允許溝通)192.168.221.50(321教室某同學) →192.168.221.1(321教室的路由器網關)→192.168.222.1(320教師路由器) 192.168.222.30(320教室某同學)
同一局域網內的電腦超過了256臺:解決方案,ip地址一共32位,前24位固定,後面8位共256種可能分配局域網電腦和網卡。前面固定位數減少,後門組合的位數增加,所以出現10開頭的局域網ip段支持更多電腦。
子網掩碼:同一局域ip地址,不知道固定的是多少位,自由組合多少位,產生歧義。定義局域網ip地址前多少位是固定的。
例如:192.168.221.73
二進制11000000 10101000 11011101 01001001 前24位固定
子網掩碼 11111111 11111111 11111111 00000000 固定用1表示
子網十進制 255.255.255.0 也就是說上面局域網ip 192.168.2221部分是固定的。

###dhcp協議
DHCP協議:因爲配置靜態ip比較麻煩和專業。所以出現了dhcp動態dns分配協議。路由器如果開啓dhcp服務,那麼會爲接入局域網的電腦設備自動分配局域網ip、網關、子網掩碼。優勢是比較方便。相關設置dhcp的ip池 100-150 最多支持50臺,設置ip過期時間。ip過期後會重新分配ip。
靜態ip:如果有更精細的需求,應該手動配置靜態ip。
###ping tracer命令 百度“IP”
ping www.baidu.com
服務器返回幾次少量數據、傳輸用是ms,看網絡通不通。(個別服務器安全原因禁止ping)
tracert www.baidu.com 戶跟蹤路由節點跳轉的詳細信息。
作業(選做):tracert可視化工具、提供節點ip對應的運營商信息。
百度“ip”:查看自己電腦的公網ipv4地址。-

##整體流程
1.客戶端瀏覽器想情求一個頁面
2.請求DNS服務器獲得網頁對應ip地址
3.構造http請求
4.http拆分成tcp報文
5.tcp報文通過包含的ip信息 跳轉路由器
6.服務器收到tcp報文
7.服務器tcp報文組裝還原成http報文信息
8.服務器根據http請求返回相應資源,返回響應內容,傳輸過程同上。

##深入http協議
###requsts和resp
請求 request

  • 請求方法:GET、POST
  • host:目標地址
  • connection: keep alive 或指定過期時間
  • cookie:比方,瀏覽器自帶的小數據庫
  • user-agent :用戶的瀏覽器信息

響應 response
屬性:

  • Content-Type:內容類型,字符編碼
  • Data:時間
  • Set-Cookie:服務端讓瀏覽器存儲的信息。
  • status-code:響應碼。判斷成功或失敗原因。
  • 返回的具體信息:html、js css png.

URI URL

URI(Uniform Resource Identifier)統一資源標示符,互聯網某一資源的位置的標示。
URL (Uniform Resource Location)統一資源定位符。鏈接。
區別:URI概念寬泛, D://xxx.jpg https://www.baidu.com/logo.jpg,
URL是URI的子集https://www.baidu.com/logo.jpg 。

URL構成

https://zzk.cnblogs.com/s?w=blog%3Awuyun-blog dd

  • 協議:http https
  • 認證(瞭解):http代理 用戶名、密碼。
  • 域名:www.baidu.com
  • 文件層級:dir/L11/8.html 請求訪問資源的路徑
  • 參數:隨請求發送的參數。鍵值對形式?Word=Python&tn=news
    ###GET POST
    get:取資源,絕大部分http請求都是get請求。
    post:瀏覽器信息傳遞到服務器,期望服務器進行存儲或計算。表單提交,有安全性要求的請求。
    表現形式區別:瀏覽器請求頭method中看出。

區別(面試題)

  • 瀏覽器請求頭request method中看出
  • get請求url可以看到參數。post請求的參數在http請求體中,url中看不到,因此post請求更加安全。
  • get請求url長度有限制,不適合參數特別多和傳輸信息大。
  • get可以回退瀏覽器讀緩存;post每次重新提交

option 客戶端請求操作服務器,已經被封裝了。
(不常用)put請求服務器存儲資源,delete請求刪除,這兩種請求都可以由post代替。
工具:谷歌瀏覽器右鍵開發者工具中看到。
###狀態碼
服務器響應的status code 狀態,表示請求成功還是失敗。

  • 200 成功
  • 304 重定向
  • 403 沒有權限訪問
  • 404 找不到資源
  • 500 內部錯誤,代碼寫錯
  • 502 網關錯誤,路由問題 服務器壓力大未及時響應

###session會話 和cookie小餅乾
http是無狀態的。比如 發送了一個含有用戶名密碼的post登錄請求,服務器驗證通過後返回需要權限才能瀏覽的頁面。但時處於穩定和節省資源考慮,http發明時定義服務器不需要存儲額外數據(訪問者、用戶名、密碼)。當第二次訪問時,服務器不知道你已經登錄了。那麼每次訪問都需要輸入用戶名密碼,顯然不可能。
(面試題)session cookie區別?
session 會話:抽象概念,瀏覽器跟服務器通訊的過程,幾分鐘,幾小時,持續溝通的過程。
cookie:瀏覽器自帶的一個小數據庫,用來存儲信息,(存儲 用戶名、密碼、會話id)。服務器response讓客戶端設置cookie。 客戶端請求服務器會把同一域名下的cookie中的值給帶上。可以再chrome開發者工具application看到。
權限驗證流程:
1.瀏覽器請求登錄,攜帶用戶名密碼信息。
2.cookie中的數據值可見,密碼存到cookie有安全問題。
3.解決辦法,服務器驗證用戶名密碼,權限通過,根據用戶信息生成一個哈希加密的字符串,形如’ie234tDI45DKF566JD’,服務器會臨時保存這個字符串。
4.服務器返回具體網頁內容和session_id這個字符串存到cookie當中。
5.瀏覽器每次訪問時都會帶上cookie。服務器驗證cookie中的session_id比對,如果存在說明用戶已經登錄。這樣就可以保持會話持續。

###https
https:Hyoer Text Transfer Protocol over Secure Socket Layer基於安全套接字層的http協議。加密方式sstsl。防止http請求過程中被中間人抓取、攻擊。比http更加安全。

###代理服務器
我的電腦 → 中介電腦 →目的網頁
場景:科學上網。爬蟲。
###ipv6
ipv6。ipv4除去一些特殊網段,加上網絡在全球非常流行,每個人的都有手機電腦都等網絡設備,ipv4地址緊缺不夠用,ipv6地址正在推廣中。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章