Web 服務器通信原理
一.基本知識介紹
IP
定義:互聯網協議地址,縮寫為IP地址,是分配給用戶上網使用的網際協議的設備的數字標簽。
理解:ip實際上就是地址,如果我想到你家去玩,那么我肯定要知道你家住在哪里,ip實際上就是你電腦的地址,在網絡上可以通過ip來訪問你的計算機。
ip有內網和公網的概念。什么是內網?什么是公網?
打個比方:
你家的門牌號那就是個公網地址,X省X市X街道X號,別人看到這個地址就能找到你家
內網地址是什么妮,假設你住的是一個大樓,比如住401房間,那么只有同一個大樓里面的人才能夠通過401這個地址找到你的房間吧。其他人根本不知道是哪里的401房間對吧
公網地址是運營商分配的,內網地址是路由器分配的。
如何判斷地址是公網還是內網妮?這些地址就是內網地址了
10.0.0.0~10.255.255.255 |172.16.0.0~172.31.255.255 |192.168.0.0~192.168.255.255
對於自己而言,如果你是本機訪問本機,那么127.0.0.1或者localhost都代表着自己
域名
定義:域名實際上是為了方便記憶所發明的一個字符型標識
DNS
定義:將域名轉化為ip的一個協議
端口
端口就像電腦的接口,像USB接口,比如你需要用鍵盤時候,你要把鍵盤插入接口,端口就是類似的東西,端口主要是網絡接口,比如你去訪問別人網站,一般來說你實際上是去他的80端口進行通信。
我們有多少個端口?有范圍是從0 到65535(2^16-1)
0端口是預留端口。一般不會用到
MAC地址
網卡的物理地址通常是由網卡生產廠家燒入網卡(全球唯一性) 可以偽造
HTTP協議
超文本傳輸協議(HTTP,HyperText Transfer Protocol)是互聯網上應用最為廣泛的一種網絡協議。設計HTTP最初的目的是為了提供一種發布和接收HTML頁面的方法,基本*問網站都是使用HTTP協議
HTTP協議我們來看看需要了解什么,我們拿一個HTTP通信數據包來講解
GET /?tn=62095104_26_oem_dg HTTP/1.1
Host: baidu.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/69.0.3497.100 Safari/537.36
Cookie:BAIDUID=73B3EA8C6CE97FA3AEA1C885FECA03A9:FG=1; BIDUPSID=73B3EA8C6CE97FA3AEA1C885FECA03A9; PSTM=1558791249
GET 是請求方式 HTTP/1.1 是協議版本 HOST是訪問的域名 User-Agent傳參是傳參告訴別人你的瀏覽器是什么,是什么系統呀。Cookie就是一個用戶的憑證。就是代表你的身份,比如你登陸后,那串Cookie被人竊取了,那么利用那串Cookie,他就可以直接有你賬號登陸的權限。
二.網頁瀏覽流程
從訪客角度看網頁瀏覽流程
1.1.1.1 baidu.com → 網關 →DNS表,qzone.qq.com→ IP web服務器
1、用戶在瀏覽器輸入協議://域名,如 http://www.zkaq.org
2、用戶瀏覽器通過系統 → 向DNS服務器查詢域名對應的IP地址
3、用戶瀏覽器向查詢到的IP地址(Web服務器)發起HTTP請求
4、服務器分析用戶請求,從中提取數據,處理后返回一個http響應
5、瀏覽器收到響應后提取狀態、協議編碼、正文的有效信息,然后翻譯成人類能夠直觀理解的圖形界面並顯示。
常見的服務器系統
Linux
Windows Server
macOs server
看到盤符一定是WINDOWS,看到/開頭一般都是LIUNX(畢竟拿macOS做系統很罕見)
相對路徑和絕對路徑
1.絕對路徑
先說在本地計算機上,文件的絕對路徑當然是指:文件在硬盤上真正存在的路徑。
例如:C:\Users\Admin\.android\avd (看到盤符就絕對是WINDOWS絕對路徑了)
/etc/init/ (看到/開頭就是liunx的絕對路徑了)
2.相對路徑
相對路徑,顧名思義就是自己相對與目標位置。
假設 你要引入文件的頁面名稱為test.htm,它存在叫www的文件夾里(絕對路徑D:/wamp/www/test.htm)
那么引用同時存在www文件夾里的“icon.jpg”文件(絕對路徑D:/wamp/www/icon.jpg)
同一目錄下相對路徑icon.jpg (./icon.jpg ../)
如果文件“icon.jpg”存在img文文件夾中(絕對路徑D:/wamp/www/img/icon.jpg),那么相對路徑./img/icon.jpg。
三.Web服務器理解
Web容器
Web容器是可以向發出請求的瀏覽器提供文檔的程序。
Web容器是一種被動程序:只有其他計算機發出的請求該容器時,容器才會響應
Web容器的主要功能是存儲,處理和傳遞網頁給客戶。客戶端和服務器之間的通信使用超文本傳輸協議(HTTP)進行。交付的頁面最常見的是HTML文檔,除了文本內容之外,還可能包含圖像,樣式表和腳本。
常見Web容器
IIS(Windows)
Apache(全平台)
Nginx(全平台)