前後台的網絡數據傳輸
前端:
主要是圍繞瀏覽器的工作展開,包括瀏覽器處理用戶的交互、發送網絡請求、收到網絡響應之後的處理與渲染等等
處理用戶的交互
瀏覽器本身與用戶的交互基本不涉及網絡知識,但Web前端UI的設計與實現是一個前端研發攻城獅必須掌握的(主要是JS相關)
發送網絡請求
最普通的就是“從地址欄輸入URL開始……”,主要涉及用戶端瀏覽器、操作係統的網絡模塊的相關處理。瀏覽器會對URL進行檢查、分析,涉及URL合法性、URL對應的協議(最常見的時HTTP協議,也是部分瀏覽器的默認網絡協議);如果URL合法,接下來會檢查URL中HOST是一個域名(Domain)還是一個IP地址;如果是IP地址,會直接發送請求,否則會查看係統本地的HOSTS文件有沒有相應的配置,沒有的話會啟用DNS(域名係統)協議查詢域名對應的IP地址;發送出請求,瀏覽器的工作暫時結束,網絡請求交由操作係統處理,值得注意的是,如果是新入網機器或者局域網剛從網絡故障中恢複,操作係統還可能動用ARP協議(地址解析協議)獲取到出口路由的MAC地址,以便把數據包交給路由器,並有路由器轉發到外網;操作係統協議棧對網絡請求數據包的解析與處理是另一方麵內容(主要涉及不同網絡層次的不同網絡協議)
處理網絡響應與渲染
這是傳統前端工程師必須掌握的知識,資源型的網絡響應(比如DOC文檔、ZIP壓縮包文檔)瀏覽器會智能地處理下載事宜;如果相應內容是可渲染的純文本,就交由前端程序以合理的布局“鋪”到頁麵中;而頁麵代碼(HTML/CSS)的解析與現實則由瀏覽器的渲染引擎實現,不同瀏覽器渲染引擎的策略可能不同,會有一些需要注意的地方,前端工程師也會掌握這部分知識。
後台:
主要涉及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服務器建立連接
最後更新:2017-06-13 16:01:38
上一篇:
移動醫療行業虧損擴大:哪條路徑才是正確的?
下一篇:
天貓618服飾首日銷售普漲200%,美妝洗護全麵爆發
【算法小總結】二分圖最大匹配的非遞歸方法
解決:<net.sf.ehcache.util.UpdateChecker> : New update(s) found: 2.6.5
JAVA獲取圖片大小和尺寸
政府安全資訊精選 2017年第三期:數據保護,下一個裏程碑
Is this a MS EnterLib DAAB BUG or not?
從一般管理原則看微軟的重組 .
利用 Scikit Learn的Python數據預處理實戰指南
ELRepo - Enterprise Linux ???RHEL???CentOS ??? SL??????????????????-??????-????????????-?????????
獲取Root權限,讓你玩轉安卓
Copycat - MemberShip