Web服務器通信原理
一、基本知識介紹
常見服務器系統
Linux(RedHat、CentOS、Debian、Ubuntu)
Windows Server(Windows Serve 2008、Server 2012、Server 2016、Server 2019)
MacOS Server-基本沒見過
Windows 常見的家用辦公系統有Windows 7、Windows10;Windows 服務器系統有Windows Server。
Windows和Linux的區別
Windows的路徑:
Linux的路徑顯示:
能看到盤符的肯定是Windows。看到 / 開頭一般都是Linux或者MacOS
CMD命令
過去計算機還沒有現在這樣美觀的圖形界面。通常是Dos系統,那時候人們使用電腦,都是使用cmd命令進行操作;在Windows系統中提供了CMD指令,可以讓大家使用命令操作電腦。這樣在滲透測試中會起到一定的作用。
簡單的CMD命令;
dir 顯示當前目錄;
cd 進入xx目錄
絕對路徑和相對路徑
絕對路徑:就是你主頁上的文件或目錄在硬盤上的真正路徑。
相對路徑:就是相對某個基准目錄的路徑。包含Web的相對路徑(HTML中的相對目錄)
例如:
1.D:\ISO鏡像\Lync-Server-2013企業版部署.pdf ==> “Lync-Server-2013企業版部署.pdf” 就是一個絕對路徑
2.https://www.cnblogs.com/061713xlhj/ 這也是一個絕對路徑
3.假設你要引用頁面名稱為test.html。它存放在www的文件夾里,那么絕對路徑是D:/phpstudy/www/test.html.同時引用存在www文件夾里面的icon.jpg文件,在同一個目錄下這個icon.jpg的相對路徑./icon.jpg。絕對路徑是D:/phpstudy/www/icon.jpg
網絡簡介
IP定義:互聯網協議地址,縮寫為IP,是分配給用戶上網使用的網際協議的設備的數字標簽。
說的通俗易懂的解釋就是,ip實際上就是地址,如果我想到你家去玩,那么我肯定要知道你家住在哪里,ip實際上就是你電腦的地址,在網絡上可以通過ip來訪問你的計算機。
IP有內網和公網的概念。內網是什么,公網是什么。
舉個栗子:
你家的門牌號那就是個公網地址,四川省成都市紅牌樓街道12號,別人看到這個地址就能找到你家
內網地址是什么呢,假設你住的是一個大樓,比如住503房間,那么只有同一個大樓里面的人才能夠通過503這個地址找到你的房間吧。其他人根本不知道是哪里的503房間對吧
公網地址是運營商分配的,內網地址是路由器分配的。
如何判斷地址是公網還是內網?這些地址就是內網地址了
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都代表着自己
怎么查看自己的內網ip 可以使用cmd命令 ipconfig 外網ip可以通過百度
域名:域名實際上是為了方便記憶發明的一個字符型標識。
cnblogs.com | news.cnblogs.com |
一級域名 | 二級域名 |
DNS:將域名轉化為IP的一個協議。
14.215.177.39 baidu.com
因為有DNS協議的參與,輸入baidu.com打開的也沒和輸入14.215.177.39打開的頁面是一樣的。
端口:
端口就像電腦的接口,像USB接口,比如你需要用鍵盤時候,你要把鍵盤插入接口,端口就是類似的東西,端口主要是用於網絡的接口,比如你去訪問別人網站,一般來說你實際上是去他的80端口進行通信。一共有65536(2^16-1)個端口,0端口是預留端口。一般不會用到
在Windows系統CMD命令提示符窗口,輸入netstat -an即可查看
紅色框內就是端口號
電腦的端口默認情況下是固定 每個服務對應不同的端口
如3389 445 3306 1433 80 443
80端口是為HTTP(HyperText Transport Protocol)即超文本傳輸協議開放的,此為上網沖浪使用次數最多的協議,主要用於WWW(World Wide Web)即萬維網傳輸信息的協議。
443端口即網頁瀏覽端口,主要是用於HTTPS服務,是提供加密和通過安全端口傳輸的另一種HTTP。
445端口是一個毀譽參半的端口,有了它我們可以在局域網中輕松訪問各種共享文件夾或共享打印機。
1433端口是SQL Server默認的端口,SQL Server服務使用兩個端口:TCP-1433、UDP-1434。
3306端口是MySQL的默認端口。
3389端口是Windows 2000(2003) Server遠程桌面的服務端口,可以通過這個端口,用"遠程桌面"等連接工具來連接到遠程的服務器。
HTTP協議
http協議超文本傳輸協議(HTTP,HyperText Transfer Protocol),是互聯網上應用最為廣泛的一種網絡協議。
設計HTTP最初的目的是為了提供一種發布和接收HTML頁面的方法,基本上訪問網站都是使用HTTP協議。HTTP協議我們從下面這個HTTP通信數據包來理解。
GET / HTTP/1.1 #GET 是請求方式 HTTP/1.1 是協議版本
Host: www.baidu.com #Host是訪問的域名
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/80.0.3987.163 Safari/537.36 #User-Agent傳參,告訴別人你的瀏覽器是什么。是什么系統。
二、網頁瀏覽流程
從訪客角度看網頁瀏覽流程
一、開始用戶在瀏覽器輸入協議://域名,如 https://www.baidu.com
二、然后用戶瀏覽器通過系統向DNS服務器查詢域名對應的IP地址
三、負載均衡根據我們設定的分配算法和規則,選擇一台后端的真實Web服務器,與之建立TCP連接、並轉發我們瀏覽器發出去的網頁請求。
四、用戶瀏覽器向查詢到的IP地址(Web服務器)發起HTTP請求
五、在瀏覽器解析頁面內容的時候,發現頁面引用了其他未加載的image、css文件、js文件等靜態內容,根據DOM Tree和CSS Rule Tree生成Render Tree(呈現樹)。根據Render Tree渲染網頁。
六、瀏覽器收到響應后,將渲染完成的網頁展示在用戶瀏覽器中。
三、常見Web容器
簡單來說Web容器就是可以向發出請求的瀏覽器提供文檔的程序。它是一種被動程序,只有其他計算機發出的請求該容器時,容器才會響應;
Web容器的主要功能是存儲,處理和傳遞網頁給客戶。客戶端和服務器之間的通信使用超文本傳輸協議(HTTP)進行。交付的頁面最常見的是HTML文檔,除了文本內容之外,還可能包含圖像,樣式表和腳本。
常見的Web容器:
Apache:Apache是世界使用排名第一的Web服務器軟件。它可以運行在幾乎所有廣泛使用的計算機平台上,由於其跨平台和安全性被廣泛使用,是最流行的Web服務器端軟件之一。
Nginx:是一個高性能的HTTP和反向代理web服務器,同時也提供了IMAP/POP3/SMTP服務。
IIS:是互聯網信息服務,是由微軟公司提供的基於運行Microsoft Windows的互聯網基本服務。