瀏覽器輸入網址--->http://www.baidu.com:80 --->域名解析(電腦,路由器,運營商DNS服務器)--->http://202.2.2.2:80,請求包--->百度網關服務器 --->分發給相對應的服務器 ----> 程序(Java)處理請求 ---> 請求登陸校驗,數據庫鏈接和獲取。。。--->服務器程序返回(響應頭)百度頁面(html)--- 瀏覽器解析響應頭和html頁面,重複請求html頁面所須要的資源,發送--->http://202.2.2.2/css/style.css:80--->html渲染頁面過程,先根據html渲染出dom樹,而後在根據css樣式,渲染出樣式樹,最終完成渲染。css
修改當前主機的域名解析:html
C:\Windows\System32\drivers\etc\hostweb
修改方式:數據庫
127.0.0.1 www.xxx.com瀏覽器 127.0.0.1 www.boidu.com安全 127.0.0.1 www.taoboo.com服務器 |
互聯網的發展很是迅速,可是萬變不離其宗。學習 web 開發,須要咱們對互聯的交互機制有必定的瞭解。須要對 web 開發中客戶端和服務器的交互機制以及所涉及的規範(HTTP)進行學習。HTTP 協議詳解dom
一、 web 交互的基本流程post
圖片介紹:學習
客戶端根據用戶輸入的地址信息請求服務器,服務器在接收到用戶的請求後進行處理,而後將處理結果響應給客戶端,客戶端將響應結果展現給用戶。
專業術語:
請求:客戶端根據用戶地址信息將數據發送給服務器的過程響應:服務器將請求的處理結果發送給瀏覽器的過程
問題:客戶端也就是瀏覽器的版本是有不少的,服務器的版本也是有不少的,如何實現不一樣版本的瀏覽器和不一樣版本的服務器之間的數據交互呢?
解決:
規範瀏覽器和服務器的數據交互的格式。
實現:
HTTP 協議
二、 HTTP 的概念和介紹
概念:
超文本傳輸協議(Hyper Text Transfer Protocol) 做用:
規範了瀏覽器和服務器的數據交互特色:
簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。
請求方法經常使用的有 GET、HEAD、POST。每種方法規定了客戶與服務器聯繫的類型不一樣。因爲 HTTP 協議簡單,使得 HTTP 服務器的程序規模小,於是通訊速度很快
靈活:HTTP 容許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type 加以標記。
無鏈接:無鏈接的含義是限制每次鏈接只處理一個請求。服務器處理完客戶的請求,並收到客戶的應答後,即斷開鏈接。採用這種方式能夠節省傳輸時間。
無狀態:HTTP 協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。
缺乏狀態意味着若是後續處理須要前面的信息, 則它必須重傳,這樣可能致使每次鏈接傳送的數據量增大。另外一方面,在服務器不須要先前信息時它的應答就較快。
支持 B/S 及 C/S 模式。HTTP1.1 版本後支持可持續鏈接
三、 HTTP 的交互流程:
HTTP 的交互流程通常分爲四個步驟(一次完整的請求):
步驟一: 客戶端和服務器端創建鏈接
步驟二:客戶端發送請求數據到服務器端(HTTP 協議)
步驟三:服務器端接收到請求後,進行處理,而後將處理結果響應客戶端(HTTP 協議)
步驟四:關閉客戶端和服務器端的鏈接(HTTP1.1 後不會當即關閉)
四、 HTTP 協議之請求格式
請求格式的結構:
請求頭:請求方式、請求的地址和 HTTP 協議版本
請求行:消息報頭,通常用來講明客戶端要使用的一些附加信息空行: 位於請求行和請求數據之間,空行是必須的。
注意: 一張網頁的內容是極其豐富的,瀏覽器會遵循
HTTP 請求的格式將有效數據發送給服務器。
示例(get 請求方式):
示例(post 請求方式)
五、 HTTP 協議之請求方式
根據 HTTP 標準,HTTP 請求可使用多種請求方法。
HTTP1.0 定義了三種請求方法: GET, POST 和 HEAD 方法。HTTP1.1 新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和CONNECT 方法。
get 和post 請求方式的區別: get 請求方式:
請求數據會以?的形式隔開拼接在請求頭中,不安全,沒有請求實體部分。
HTTP 協議雖然沒有規定請求數據的大小,可是瀏覽器對 URL 的長度是有限制的,因此 get 請求不能攜帶大量的數據。
post 請求方式:
請求數據在請求實體中進行發送,在 URL 中看不到具體的請求數據, 安全。適合數據量大的數據發送。
六、 HTTP 協議之響應
響應格式的結構:
響應行(狀態行):HTTP 版本、狀態碼、狀態消息響應頭:消息報頭,客戶端使用的附加信息
空行:響應頭和響應實體之間的,必須的。
響應實體:正文,服務器返回給瀏覽器的信息
示例
HTTP 常見響應狀態碼含義:
HTTP 狀態碼由三個十進制數字組成,第一個十進制數字定義了狀態碼的類型,後兩個數字沒有分類的做用。HTTP 狀態碼共分爲 5 種類型
常見狀態碼:
200 OK //客戶端請求成功
400 Bad Request //客戶端請求有語法錯誤,不能被服務器所理解
401 Unauthorized //請求未經受權,這個狀態代碼必須和
WWW-Authenticate 報頭域一塊兒使用
403 Forbidden //服務器收到請求,可是拒絕提供服務
404 Not Found //請求資源不存在,eg:輸入了錯誤的 URL
500 Internal Server Error //服務器發生不可預期的錯誤
503 Server Unavailable //服務器當前不能處理客戶端的請求,一段時
間後可能恢復正常