1. 程式人生 > >HTTP協議學習隨筆-1

HTTP協議學習隨筆-1

開發人員 for http協議原理 sea 遞歸查詢 不變 保持 進行 tps

一、HTTP協議原理介紹:
HTTP協議,全稱HyperText Transfer Protocol,中文名為超文本傳輸協議
HTTP的重要應用之一是WWW服務
www,全稱World Wide Web,常稱為Web,中文譯為“萬維網”
HTTP協議的WWW服務應用的默認端口為80
另外一個加密的WWW服務應用https的默認端口為443
說明:一般互聯網公司,對外開放的端口,只有兩個(80和443)
二、HTTP協議原理介紹
用戶訪問網站流程:
1)利用DNS服務進行域名解析(DNS解析原理-遞歸查詢/叠代查詢)
2)用戶端要和企業網站服務器建立網絡連接(TCP三次握手過程/三次握手的狀態轉換)
3)用戶請求網站發送相應頁面信息 --- http請求報文發送(客戶端發出) http請求報文包含:請求起始行-請求頭部-空行-請求主體(內容)
3+) 根據網站架構層次,思考詳細請求的過程
4)網站響應用戶請求,發送相應頁面信息 --- http響應報文發送(服務端發出)
5)用戶端要和企業網站服務器斷開網絡連接(TCP四次揮手過程/四次揮手的狀態轉換)
三、HTTP協議請求報文結構:
1)請求行:
a)請求方法:
get --- 獲得請求文件信息的數據內容(獲取)
post --- 告知服務需要保存的數據信息(提交)
b) 請求文件信息:
說明:當沒有指定請求的文件內容,默認請求的是首頁文件index.html
c )說明請求報文采用什麽http協議版本
HTTP協議版本說明
1.0:規定瀏覽器與服務器只保持短暫的連接(TCP短連接)
1.1:規定瀏覽器與服務器只保持長久的連接(TCP長連接)
2)請求頭內容:
d) 空行
e) 請求主體內容:
說明:采用get方法時,不會有請求主體內容;采用post方法時,將要提交的信息放入 請求主體中。
四、HTTP響應報文結構:
1)起始行:
a) HTTP協議版本
HTTP協議版本說明
1.0:規定瀏覽器與服務器只保持短暫的連接(TCP短連接)
1.1:規定瀏覽器與服務器只保持長久的連接(TCP長連接)
b) HTTP響應狀態碼信息
告知請求的結果
200 --- 正常響應請求報文
301 --- 跳轉,永久跳轉
302 --- 跳轉,臨時跳轉
403 --- 設置指定頁面拒絕訪問;(*****還有一種情況???)
404 --- 找不到我所要請求的文件內容(找不到請求的頁面信息)
500+ --- 網站後端服務器出現了問題(大部分情況都是網站出現問題)
說明:詳細了解很多http狀態碼,http權威指南
c) HTTP狀態描述信息
curl命令可以在linux系統中,模擬瀏覽器功能,訪問網站
-I --- 顯示響應報文起始行和響應頭部信息

2) 響應頭部: 
    d) 空行
    e) 響應報文主體:
        說明:就是請求報文中,所要請求文件的內容;客戶端瀏覽器會識別響應報文主體內容,進行解析  

五、以下是linux其中2種查看方法:
curl -v www.baidu.com <- 利用curl命令的-v參數,查看訪問網站請求與響應信息
wget --debug www.baidu.com <- 利用wget命令的--debug參數,查看訪問網站請 求與響應信息

六、HTTP術語介紹
1)媒體資源類型
說明:定義相應web服務可以識別的文件資源類型;
?如果媒體資源類型中有相應請求文件類型,會幫你進行解析
?如果媒體資源類型中沒有響應請求文件類型,會將文件傳輸給客戶端,自行解析

 2)URL與URI概念介紹
  URL,全稱為Uniform Resource Location,中文翻譯為統一資源定位符
    URI,全稱為Uniform Resource Identifier,中文翻譯為統一資源標識符

  https://search.jd.com     /     Search?keyword=10tb&enc=utf-8&suggest=3.his.0
         URL                                                               URI

 3) 靜態網頁資源
  純粹HTML格式的網頁(可以包含圖片、視頻JS(前端功能實現)、CSS(樣式)等)通常被稱為“靜態網頁”
  特征說明:
  a)每個頁面都有一個固定的URL地址,且URL一般以.html、.htm、.shtml等常見形式為後綴,
     而且地址中不含有問號“?”或“&”等特殊符號。
  b)靜態網頁是實實在在保存在服務器上的文件實體,每個網頁都是一個獨立的文件
  c)靜態資源不需要和數據庫進行交互,因此網站交互性能差
  d)網頁內容是固定不變的,因此,容易被搜索引擎收錄(容易被用戶找到)(優點)
  e)網頁程序在用戶瀏覽器端解析,當客戶端向服務器請求數據時,
        服務器會直接從磁盤文件系統上返回數據(不做任何解析)

4) 動態網頁資源
所謂的動態網頁是與靜態網頁相對而言的,也就是說,動態網頁的URL後綴不 是.html、.htm、.xml、.shtml、.js、.css等靜態網頁的常見擴展名形式
特征說明
a)動態資源需要和數據庫進行交互,因此網站交互性能好
b)網頁程序在服務端解析,當客戶端向服務器請求數據時,
服務器會直接從磁盤文件系統上返回數據(會做數據解析後返回)

5)偽靜態資源(了解/真正企業中有開發人員負責偽靜態資源編寫)
a) 網頁內容是固定不變的,因此,容易被搜索引擎收錄

   b) 網頁程序在用戶瀏覽器端解析,當客戶端向服務器請求數據時,
            服務器會直接從磁盤文件系統上返回數據(不做任何解析)

   c) 動態資源需要和數據庫進行交互,因此網站交互性能優

   d)網頁程序在服務端解析,當客戶端向服務器請求數據時,
             服務器會直接從磁盤文件系統上返回數據(會做數據解析後返回)

HTTP協議學習隨筆-1