Http工作原理
阿新 • • 發佈:2018-09-15
inf may png 結束 === 傳遞 agent 方法 內部錯誤
目錄
- Http工作原理
- 1.http(超文本傳輸協議)
- 2.URL結構
- 3.http的工作原理
- 4.http的請求方法
- 5.http的響應狀態碼(以3位數字組成)
- 6.用戶訪問網站攜帶的參數,以及服務端返回的參數
- 1.概況
- 2.客戶端請求的頭部信息
- 3.服務端響應的頭部信息
- 7.pv、ip、uv
- 8.用戶訪問網站的流程
Http工作原理
1.http(超文本傳輸協議)
1.由html文件->包含各種各樣的元素(URL鏈接)->web頁面
2.URL結構
3.http的工作原理
1.發起dns請求 2.獲取到域名對應的IP地址 3.瀏覽器發起tcp的連接 4.基於tcp的連接,傳輸http的請求(一次tcp的連接,可以建立多次的http請求) 5.瀏覽器請求/index.html 6.服務器響應/index.html至瀏覽器 7.瀏覽器翻譯index.html中的內容為人類可讀 8.斷開TCP的四次揮手
http的短連接:建立一次tcp的連接,發起一次http的請求,結束,tcp斷開。
http的長連接:建立一次tcp的連接,發起多次http的請求,結束,tcp端口。
4.http的請求方法
get 請求(獲取)一個網站的頁面
post 上傳什麽內容至服務器
5.http的響應狀態碼(以3位數字組成)
200 成功 301 永久重定向(redirect) 302 臨時重定向(redirect) 304 瀏覽器緩存 403 請求不到首頁,權限被拒絕 404 資源找不到 500 服務器內部錯誤,程序代碼錯誤 502 找不到後端的資源 504 請求超時
6.用戶訪問網站攜帶的參數,以及服務端返回的參數
1.概況
Request URL: http://10.0.0.7/index.html # 請求的URL地址
Request Method: GET # 請求的方法(獲取)
Status Code: 304 Not Modified # 返回的狀態
Remote Address: 10.0.0.7:80 # 請求的地址
2.客戶端請求的頭部信息
Accept: text/html, # 請求的類型 Accept-Encoding: gzip, deflate # 是否進行壓縮 Accept-Language: zh-CN,zh;q=0.9 # 請求的語言 Cache-Control: max-age=0 # 緩存 Connection: keep-alive # TCP長連接 Host: www.oldboyedu.com # 請求的域名 If-Modified-Since: Fri, 04 May 2018 08:13:44 GMT # 修改的時間 If-None-Match: "a49-56b5ce607fe00" # 標記 Upgrade-Insecure-Requests:1 # 在http和https之間起的一個過渡作用 User-Agent: Mozilla/5.0 # 用戶的瀏覽器 ===========請求一個空行=========================
3.服務端響應的頭部信息
HTTP/1.1 304 Not Modified # 返回服務器的http協議,狀態碼
Date: Fri, 14 Sep 2018 09:14:28 GMT # 返回服務器的時間
Server: Apache/2.4.6 (CentOS) PHP/5.4.16 # 返回服務器使用的軟件(Apache php)
Connection: Keep-Alive # TCP長連接
Keep-Alive: timeout=5, max=100 # 長連接的超時時間
ETag: "a49-56b5ce607fe00" # 驗證客戶端標記
===========返回一個空行=========================
===========返回內容頁面=========================
7.pv、ip、uv
PV:頁面瀏覽量
uv:獨立的客戶
ip:獨立IP
我們公司有一座大廈,大廈有100人,每個人有一臺電腦一個手機,上網都是通過nat轉換出口,每個人點擊網站2次。
PV:400
UV:200
IP:1個
8.用戶訪問網站的流程
1.客戶端輸入域名以及請求的頁面
2.本地會進行一次redirect跳轉
3.解析域名對應的dns
4.最終客戶端瀏覽器獲取到dns的IP地址
5.客戶端會與服務端發起TCP的三次握手(長連接)
6.客戶端發起http請求,請求會先抵達前端的防火墻
7.防火墻識別用戶身份,正常的請求通過內部交換機通過tcp連接後端的負載均衡,然後傳遞用戶的http請求
8.負載接收到請求,會根據請求的內容進行下發任務,通過tcp連接後端的web,然後下發用戶的http請求
9.web接收到用戶的http請求後,會根據用戶請求的內容進行解析,解析分為如下兩步:
靜態請求:由web服務器向nfs建立tcp連接,獲取對應的圖片,最後返回給負載均衡(負載均衡->防火墻->用戶)
動態請求:有web向後端的動態程序建立TCP連接,將用戶的動態http請求傳遞給動態程序->由動態程序進行解析
10.動態程序在解析的過程中,如果碰到查詢數據庫的請求,則優先和緩存建立tcp的連接,然後緩存服務發起http的查詢
11.如果緩存沒有對應的數據,動態程序再次向數據庫建立tcp的連接,然後發起查詢操作。
12.由數據庫返回->動態程序->緩存->web服務->負載均衡->防火墻->用戶。
Http工作原理