萬維網


www的概念與組成結構

1.www的概念

  www是world wide web的縮寫,是一個資料空間,這個空間中,有用的事物被稱為“資源”,並由全球“統一資源定位符”標識。這些資源通過超文本傳輸協議(HTTP)傳送給使用者,而后者通過單擊連接來獲取資源。

2.www的組成

  統一資源定位符(URL):一般格式為 <協議>://<主機>:<端口> / <路徑>

  超文本傳輸協議(HTTP):應用層協議,使用TCP連接進行可靠的傳輸。

  超文本標記語言(HTML):用一些預定的標記來描述頁面上的各種信息

萬維網的工作過程

  以訪問清華大學的網站為例:

  1)瀏覽器分析鏈接指向頁面的URL (https://www.tsinghua.edu.cn/publish/thu2018/index.html

  2)瀏覽器向DNS請求解析www.tsinghua.edu.cn的IP地址

  3)域名系統DNS解析出清華大學服務器的IP地址

  4)瀏覽器知道 IP 地址后,通過 TCP 向服務器發送連接請求

  5)萬維網站點都有一個服務器進程,它不斷地監視TCP的端口(默認80),一旦監聽到請求后,建立連接

  6)瀏覽器發出HTTP請求:/publish/thu2018/index.html

  7)  服務器通過 HTTP響應把文件 index.html 發送給瀏覽器

  8)TCP連接釋放

  9)瀏覽器解釋文件 index.html,並把頁面顯示給用戶

HTTP

  http是無狀態的,簡化了服務器的設計。

  http采用了 TCP 作為傳輸層協議,從而保證了數據的可靠傳輸。

HTTP server 1.0

  單進程,一旦阻塞就完了

HTTP server 2.0:多進程

   當接收連接以后,創建子進程來接管新的socket,這樣主進程就不會阻塞了,這樣可以接受新的連接了。

HTTP server 3.0:select模型

  在 2.0版本中,采用多進程來解決並發的問題,但是進程需要消耗大量的系統資源,每次切換進程更是麻煩。

  一個socket 連接就是一個所謂的文件描述符,用“進程”這個重量級的東西來表示它有點浪費。

  從前阻塞是因為 瀏覽器還沒有把數據發過來,而http迫不及待的想讀,就被阻塞了,單進程情況下,一旦阻塞,什么事兒都干不了。

  現在http server每次把 一批socket的編號傳給操作系統,操作系統可以在后台檢查 這些socket,一旦發現 可以讀寫了,就把對應的socket   做個標記,http server就被喚醒了。

  聯想:有點類似中斷系統,早期的時候輪循,后來改為中斷系統。

HTTP server 4.0:epoll模型

  在 3.0版本的基礎上微微改動,操作系統直接返回需要處理的 socket的編號,http server不需要挨個遍歷。

 

 

 

  

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM