- Java Web開發就該這樣學
- 王洋編著
- 957字
- 2018-12-30 08:32:48
第1章 認識Tomcat
1.1 什么是Web Server
今天來討論Web對大多數人來說都不是多么陌生的概念,我們在電腦中打開瀏覽器,在地址欄中輸入http://www.sohu.com,就能夠看到搜狐公司提供給我們的網頁,來思考一下在你的操作背后,計算機本身以及Internet為我們在做些什么事情。
首先是瀏覽器,經過Java部分編程的學習,你不應該對計算機里面的任何程序有所敬畏,那些程序都是和你一樣的程序員編寫出來的,理論上只要你愿意,花些時間你也可以編寫出相似的程序!
那么,如果由你來編寫一個瀏覽器,你會做些什么?我們能夠想象,用戶輸入的http://www.sohu.com是一個網址,它對應了一個IP地址,通過網址得到一個IP地址,并不是一件多么難的事情,互聯網上的DNS服務就可以提供這樣的轉換。作為一個程序員,得到一個IP地址后,會創建Socket對象和對方連接上,目的是為了得到一個特定的網頁,我們常常能夠在瀏覽器的地址欄中看到這樣的網址:http://www.360buy.com/product/258313.html,意思是我要看京東網站上的258313.html這個文件的內容。這是由于一個網站上的網頁文件太多了,所以還會有路徑結構。
http://www.sohu.com這樣的網址請求是個例外,你并沒有指定要看哪個網頁,通常網站會提供一個默認的網頁,如果沒有指定,就將這個默認的網頁傳送給你。無論是哪種形式,我們將瀏覽器中輸入的地址稱為URL。
我們不看這樣的例外情況,來想一下,如果要看258313.html這個網頁,是不是要通過Socket將這個請求傳送到京東的網站服務器去呢。
京東的網站服務器一定是一臺計算機,但是只有計算機是不夠的,計算機上需要運行一個程序,我們能夠理解,這個程序將是服務器端的Socket應用,里面有ServerSocket,這個程序將監聽在一個端口,大家約定了提供Web服務的端口是80,當然也可以改變這個約定,那么在瀏覽器訪問的時候,就要額外指定新的端口號,如果不這樣做,就意味著瀏覽器訪問的是80端口。
服務器的程序將接收到瀏覽器發出的請求,然后它用IO流到自己所管理的目錄中找到這個258313.html文件,將這個文件的內容讀到內存中,然后通過網絡發送給你的瀏覽器,瀏覽器得到了這個文件的內容,將按照html的規則顯示出來。這就是一次最簡單的Web訪問的過程,如圖1-1所示。

圖1-1
作為一個計算機的使用者,瀏覽器是一個非常常用的程序,有很多公司會把這樣的程序做成產品,所以現在我們已經不需要來編寫這樣的程序了。
那么服務器程序在互聯網世界中,是不是也是非常常見的程序呢,其實編寫服務器程序更加有利可圖,所以現在在市場上有很多服務器端的軟件產品,這些產品被統稱為Web Server。
- scikit-learn Cookbook
- Kali Linux Web Penetration Testing Cookbook
- Python機器學習:數據分析與評分卡建模(微課版)
- JavaScript 網頁編程從入門到精通 (清華社"視頻大講堂"大系·網絡開發視頻大講堂)
- 差分進化算法及其高維多目標優化應用
- QGIS By Example
- 區塊鏈技術進階與實戰(第2版)
- Essential C++(中文版)
- 開源項目成功之道
- Python Machine Learning Blueprints:Intuitive data projects you can relate to
- 零基礎學Scratch 3.0編程
- Android Studio開發實戰:從零基礎到App上線 (移動開發叢書)
- 從零開始:C語言快速入門教程
- 計算機程序的構造和解釋(JavaScript版)
- 高性能MVVM框架的設計與實現:San