我們在瀏覽器地址欄, 輸入了 www.sina.com.cn , 網頁就顯示出來了.
那具體它為什么會顯示出來的?
<b>我們先來一個簡單版的解答</b>
- 輸入網址, 回車后, 你的瀏覽器知道你要請求 www.sina.com.cn 這個網頁, 于是便把你的這個請求, 按照約定的格式封裝成一個數據包, 通過網絡去告訴了遠端的服務器.
- 服務器接收到了這個請求, 七轉八折告訴了PHP, PHP根據請求的不同, 輸出了不同內容, 再同樣按照約定的格式封裝成一個數據包, 通過網絡給到了瀏覽器.
- 瀏覽器接收到這些內容, 解析出來, 網頁就顯示出來啦.
<b>嗯, 還有幾個問題?</b>
問: 我輸入了一個網址, 知道發到哪個服務器去?
答: 每一個域名, 都可以解析出來一個IP, 這個過程叫DNS解析. 在瀏覽器輸入網址后, 其實瀏覽器先去DNS服務器問了這個域名的IP, 然后再發包. (IP就像門牌號, 可以定位到服務器)問: 我們經常說 Web服務要80端口, 是個什么東東?
答:
端口可以理解成家里的門. 兩臺機器通信, 需要互相打開一扇門, 然后通過門來傳遞信息.
服務器上有防火墻, 可以關掉所有門. 如果你的服務器提供 Web服務, 就打開80這扇門. 打開后, 瀏覽器發送數據到你服務器IP+這扇門(80端口), 才能完成正常通信.
當然, 80不是必須的, 你也可以在服務器開啟81, 82, 8080等端口來提供Web服務.
這個時候你輸入的網址就必須是 xxx.com:81 yyy:com:82 zzz.com:8080 才能正常訪問.
如果是80就不必加后面的[:端口]的部分啦, 當然加上也沒問題. 對于瀏覽器而言 xxx.com:80 等于 xxx.com
> 聰明的菜菜有木有發現, 服務器開了一扇門: 80端口, 為了通信, 瀏覽器所在的機器是不是也應該開一扇門才能互相傳遞信息呀.
其實瀏覽器已經偷偷開了, 他開了一個1024-65534的隨機端口來通信.
關于這部分的網絡通信, 說來話長, 總之先有這樣一個概念在就好啦.