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