前後臺的網路資料傳輸

2021-09-23 14:38:08 字數 2357 閱讀 6091

主要是圍繞瀏覽器的工作展開,包括瀏覽器處理使用者的互動、傳送網路請求、收到網路響應之後的處理與渲染等等

瀏覽器本身與使用者的互動基本不涉及網路知識,但web前端ui的設計與實現是乙個前端研發攻城獅必須掌握的(主要是js相關)

最普通的就是「從位址列輸入url開始……」,主要涉及使用者端瀏覽器、作業系統的網路模組的相關處理。瀏覽器會對url進行檢查、分析,涉及url合法性、url對應的協議(最常見的時http協議,也是部分瀏覽器的預設網路協議);如果url合法,接下來會檢查url中host是乙個網域名稱(domain)還是乙個ip位址;如果是ip位址,會直接傳送請求,否則會檢視系統本地的hosts檔案有沒有相應的配置,沒有的話會啟用dns(網域名稱系統)協議查詢網域名稱對應的ip位址;傳送出請求,瀏覽器的工作暫時結束,網路請求交由作業系統處理,值得注意的是,如果是新入網機器或者區域網剛從網路故障中恢復,作業系統還可能動用arp協議(位址解析協議)獲取到出口路由的mac位址,以便把資料報交給路由器,並有路由器**到外網;作業系統協議棧對網路請求資料報的解析與處理是另一方面內容(主要涉及不同網路層次的不同網路協議)

主要涉及web伺服器(不是大刀片那種的「硬體伺服器」)對網路請求的處理。可以直觀認為web伺服器就是接受並處理瀏覽器傳送的某些協議的網路請求、並把對應處理結果返回給使用者端瀏覽器的網路應用程式。主流web伺服器有apache/iis/nginx/tomcat(不同的web伺服器程式與不同的後台指令碼程式語言或者技術配套處理網路請求,比如tomcat主要與jsp語言配套,微軟的iis主要與asp/aspx技術配套結合);web伺服器通常可以接受靜態請求並直接返回靜態內容,但遇到動態內容的請求(目前web應用大多數動態的),web伺服器就要把請求委託給各種語言和技術開發的「web後台程式」,由後台程式處理動態請求,再把處理後的結果(響應內容)交給web伺服器,最後web伺服器會把響應通過網際網路返回給使用者端瀏覽器。這方面再細節的話主要就是後台程式的架構、開發、優化技術了

網際網路層次體系的劃分(如理想的osi的七層模型和實用的tcp/ip四層網路模型),每個層次裡包含的主要的網路協議,路由原理等等

網際網路按各種標準的劃分,比如按照網路規模和地域關係劃分為區域網、都會網路、廣域網;按照網路拓撲結構分為匯流排型、樹狀網路、網狀、分布式等等,更細節的會有各種被劃分的子類中一些技術,比如私有位址與公網位址轉換的nat(network address translation,網路位址轉換)技術

網際網路不同層次裡的不同協議的各種細節(資料報結構、執行策略比如tcp協議的三次握手和擁塞避免、滑動視窗、ip位址劃分、dns查詢原理)甚至包括常見的協議安全類知識

這部分內容相當繁瑣複雜,但裡面的各種基礎知識是從事網路應用開發、網路運維、網路安全領域人員的必備知識

下面來說一說http請求的基本過程

首先http是乙個應用層的協議,在這個層的協議,只是一種通訊規範,也就是因為雙方要進行通訊,大家要事先約定乙個規範

當我們輸入這樣乙個請求時,首先要建立乙個socket連線,因為socket是通過ip和埠建立的,所以之前還有乙個dns解析過程,把網域名稱變成ip,如果url裡不包含埠號,則會使用該協議的預設埠號

dns的過程:

我們本地的機器上在配置網路時都會填寫dns,這樣本機就會把這個url發給這個配置的dns伺服器,如果能夠找到相應的url則返回其ip,否則該dns將繼續將該解析請求傳送給上級dns,整個dns可以看做是乙個樹狀結構,該請求將一直傳送到根直到得到結果。現在已經擁有了目標ip和埠號,這樣我們就可以開啟socket連線了

連線成功建立後,開始向web伺服器傳送請求,這個請求一般是get或post命令(post用於form引數的傳遞)。get命令的格式為:get 路徑/檔名 http/1.0

檔名指出所訪問的檔案

http/1.0指出web瀏覽器使用的http版本

現在可以傳送get命令:get /mydir/index.html http/1.0

web伺服器收到這個請求,進行處理。從它的文件空間中搜尋子目錄mydir的檔案index.html。如果找到該檔案,web伺服器把該檔案內容傳送給相應的web瀏覽器

為了告知瀏覽器,web伺服器首先傳送一些http頭資訊,然後傳送具體內容(即http體資訊),http頭資訊和http體資訊之間用乙個空行分開

常用的http頭資訊有:

http 1.0 200 ok  這是web伺服器應答的第一行,列出伺服器正在執行的http版本號和應答**。**"200 ok"表示請求完成

mime_version:1.0 它指示mime型別的版本

content_type:型別 這個頭資訊非常重要,它指示http體資訊的mime型別。如:content_type:text/html指示傳送的資料是html文件

content_length:長度值 它指示http體資訊的長度(位元組)

當應答結束後,web瀏覽器與web伺服器必須斷開,以保證其它web瀏覽器能夠與web伺服器建立連線

SpringMVC 前後臺資料傳輸

在學習使用springmvc過程中,對資料在框架中的流轉掌握不佳,特寫個筆記,對常用簡單方法進行總結 其實方式有很多,比如傳遞json字串 ajax傳值等 主要意圖在於快速上手使用。前端顯示後台資料 後台資料傳遞至前端頁面的主要方法,借助controller返回值。前端資料傳遞至後台 資料繫結 從請...

spring的前後臺資料傳輸。

modelattribute shopgoods shopgoods也可以得到引數但應該是html中form 提交form action upload enctype multipart form data method post 而不是 post.傳遞的json資料。帶引數的可以用request獲...

網路資料傳輸

網路資料傳輸 wcdma全名是widebandcdma,中文譯名為 寬頻分碼多工訪問 它可支援384kbps到2mbps不等的資料傳輸速率,在高速移動的狀態,可提供384kbps的傳輸速率,在低速或是室內環境下,則可提供高達2mbps的傳輸速率。而gsm系統目前只能傳送9.6kbps,固定線路mod...