1. 程式人生 > >頁面訪問過程及get/post的理解——

頁面訪問過程及get/post的理解——

3.5 ora 區別 記錄 斷開 目的 處理 表單 由於

  1. Chrome查看開發者工具面板,常看的一些數據?

Elements:查找網頁源代碼HTML中的任一元素,手動修改任一元素的屬性和樣式且能實時在瀏覽器裏面得到反饋。

Console:記錄開發者開發過程中的日誌信息,且可以作為與JS進行交互的命令行Shell

Sources:斷點調試JS

Network:從發起網頁頁面請求request後分析HTTP請求後得到的各個請求資源信息(包括狀態,資源類型,大小,所用時間等),可以根據這個進行網絡性能優化。

Timeline:記錄分析在網站的生命周期內所發生的各類事件,以此可以提高網頁的運行時間的性能。

Performance:記錄JS,CPU執行時間細節,可以錄制過程。

Application:記錄網站加載的所有資源信息,包括存儲數據(Local Storage,Session Storage,IndexedDB,Web SQL,Cookies)、緩存數據、字體、圖片、腳本、樣式表等。

Security:判斷當前頁面是否安全。

Audits:對當前網頁進行網絡利用情況、網頁性能方面的診斷,並給出一些優化建議。比如列出所有沒有用到的CSS文件等。

  1. 一個web頁面的訪問過程?

用戶在瀏覽器輸入url,比如http://sina.com,那麽接下來:

①瀏覽器首先會查詢本機的系統來獲取主機名對應的IP地址;

②若本機查詢不到相應的IP地址,則會發起DNS請求,獲取主機名對應的

IP地址;

③使用查詢到的IP地址,直接訪問目標服務器。

首先說說訪問目標地址的兩種方式:

第一,使用目標IP地址訪問。比如你可以直接在瀏覽器中輸入新浪的IP地址:218.30.13.36來直接訪問它的主機;

第二,由於IP地址都是一堆數字不方便記憶,於是有了域名這種字符型標識。DNS服務器則完成域名解析的工作,它將你訪問的目標域名轉換成相應的IP地址。

因此若你的電腦上不了網未必就一定是目標主機的問題,還可能是DNS服務器的故障。所以這種情況下,你能熟知幾個常用的IP地址,那麽在命令行使用ping一下就能知道問題是否是出現在了DNS服務器上了。比較常用的IP有:百度180.76.76.76,谷歌

8.8.8.8或阿裏雲223.5.5.5

為什麽我們不能自己建立一個www.sina.com網站,讓全世界的人都訪問我的這個網站呢?由以上幾步可以看出,因為域名系統的存在,使得我們可以訪問目標域名(www.sina.com)的時候,DNS服務器總是解析對應的IP地址(218.30.13.36)。所以若要別人都訪問你的“新浪”,則需要將DNS的服務器路徑指向你本機所在的IP地址,這顯然得新浪願意才行。

④瀏覽器發送HTTP請求。

HTTP請求由三部分組成,分別是:請求行、消息報頭、請求正文

⑤從請求消息中獲得客戶機想訪問的主機名。

⑥從請求信息中獲取客戶機想要訪問的web應用。(web應用程序指提供瀏覽器訪問的程序,簡稱web應用)

⑦從請求信息中獲取客戶機想要訪問的web資源。(web資源,即各種文件,圖片,視頻,文本等)

⑧讀取相應的主機下的web應用,web資源。

⑨用讀取到的web資源數據,創建一個HTTP響應。

⑩服務器回送HTTP響應。

HTTP響應也是由三個部分組成,分別是:狀態行、消息報頭、響應正文。

?客戶瀏覽器解析回送的資源,並顯示結果。

  1. HTTP協議詳解:

HTTPHyper Text Transfer Protocol)超文本傳輸協議,目的是保證瀏覽器與服務器之間的通信。HTTP的工作方式是客戶端與服務器之間的請求-應答協議。是一個屬於應用層的面向對象的協議,由於其簡捷、快速的方式,適用於分布式超媒體信息系統。

HTTP協議的主要特點概括如下:

①支持客戶/服務器模式;

②簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET,POST,PUT.DELETE。每種方法規定了客戶與服務器練習的類型不同。由於HTTP協議簡單,使得HTTP服務器的程序規模小,因而通信速度快。

③靈活:HTTP允許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記。

④無連接:無連接的含義是限制每次連接只處理一個請求,服務器處理完客戶的請求,並收到客戶的應答後,即斷開連接。,采用這種方式可以節省傳輸時間。

⑤無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶功能。缺少狀態意味著如果後續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在服務器不需要先前信息時它的應答就較快。

  1. GetPost區別?

HTTP是基於TCP/IP的關於數據如何在萬維網中通訊的協議。HTTP的底層是TCP/IP,所以GETPOST的底層也是TCP/IP,也就是說GET/POST都是TCP鏈接,他們能做的事是一樣的。他們最大的區別是GET產生一個TCP數據包,POST產生兩個TCP數據包。具體來說,對於GET請求,瀏覽器會把http headerdata一並發送出去,服務器相應200(返回數據);而對於POST,瀏覽器先發送header,服務器響應100 continue,瀏覽器再發送data,服務器響應200 OK(返回數據)。據研究,在網絡環境好的情況下,發一次包的時間和發兩次包的時間差別基本上可以無視。而在網絡差的情況下,兩次包的TCP在驗證數據包完整性上,有非常大的有點。另外,並不是多有的瀏覽器都會在post中發送兩次包,Firefox就只發一次。

Get請求的參數寫在url中,傳輸的參數安全性低,傳輸的數據大小有限制,不超過2KBGET方式服務器端用request.QueryString獲取變量的值。

Post方式將表單內各字段和內容放在HTML HEADER中一起傳送到action屬性所指定的URL地址,用戶看不到這個過程、傳送的數據量比較大、傳輸的數據安全性較高、POST方式在服務器端用Request.Form獲取提交的數據。

通常,get用於從服務器獲取數據,post用於向服務器提交數據。

頁面訪問過程及get/post的理解——