說到伺服器,聽起來感覺很高大上。其實並不然,一台高效能的pc,或者說任意一台pc,都可以被當做伺服器。伺服器本質就是供他人瀏覽的。當使用者訪問乙個網頁時會向伺服器發起這樣乙個請求,然後伺服器接收後返回使用者所需要的文件。如果要說伺服器與pc的區別恐怕只是不間斷工作。其次目的不同,伺服器是為了面向使用者,而pc是面向擁有者個人。再然後就是效能方面,一般來說伺服器為了滿足較多使用者同時訪問,裝置效能相較於普通pc,要求較高。
說完了伺服器,再談談原理。剛剛伺服器簡述中也提到了伺服器工作既是乙個發起請求,響應請求的過程。大致可以分為以下四個步驟
1 連線過程。
socket(套接字)的英文原義是「孔」或「插座」。在計算機領域指網路上的兩個程式通過乙個雙向的通訊連線實現資料的交換,這個連線的一端稱為乙個socket。
socket非常類似於**插座。以乙個國家級**網為例,**的通話雙方相當於相互通訊的2個程序,區號是它的網路位址;區內乙個單位的交換機相當於一台主機,主機分配給每個使用者的局內號碼相當於socket號。任何使用者在通話之前,首先要占有一部**機,相當於申請乙個socket;同時要知道對方的號碼,相當於對方有乙個固定的socket。然後向對方撥號呼叫,相當於發出連線請求(假如對方不在同一區內,還要撥對方區號,相當於給出網路位址)。假如對方在場並空閒(相當於通訊的另一主機開機且可以接受連線請求),拿起**話筒,雙方就可以正式通話,相當於連線成功。雙方通話的過程,是一方向**機發出訊號和對方從**機接收訊號的過程,相當於向socket傳送資料和從socket接收資料。通話結束後,一方掛起**機相當於關閉socket,撤消連線。
socket正如其英文原意那樣,像乙個多孔插座。一台主機猶如布滿各種插座的房間,每個插座有乙個編號,有的插座提供220伏交流電, 有的提供110伏交流電,有的則提供有線電視節目。 客戶軟體將插頭插到不同編號的插座,就可以得到不同的服務
(其實還有關於dns解析過程,原來想簡單了,以為只是網域名稱解析返回ip。。。後來發現這個過程還挺複雜的。。這次不說多了。。自己也還沒完全搞清楚原理。。。)
2 請求過程
請求過程是基於連線建立之後,由客戶端向web伺服器傳送的內容。通過get和post命令向伺服器傳送。
socket是對tcp/ip協議的封裝,socket本身並不是協議,而是乙個呼叫介面(api)。在socket這樣乙個架接成功後,就要講到乙個關於協議的問題。
首先計算機網路體系結構的通訊協議被劃分成七層
應用層
表示層
會話層
傳輸層
網路層
資料鏈路層
物理層
//
這就是osi/rm模型,其中第四層完成資料傳輸服務,上面三層面向使用者。我們所熟知的協議也可以被如此劃分
物理層:
乙太網 ·
數據機 · 電力線通訊(plc) ·
sonet/sdh · g.709 ·
光導纖維 · 同軸電纜 · 雙絞線等
資料鏈路層:wi-fi(
ieee 802.11) · wimax(
ieee 802.16) ·atm · dtm ·
令牌環 ·
乙太網 ·fddi ·
幀中繼 · gprs · evdo ·hspa · hdlc ·
ppp · l2tp ·pptp · isdn·stp 等
網路層協議:ip (ipv4 · ipv6) · icmp· icmpv6·igmp ·is-is · ipsec · arp · rarp等
傳輸層協議:tcp · udp · tls ·
dccp · sctp · rsvp · ospf 等
應用層協議:dhcp ·
dns · ftp · gopher · http· imap4 · irc · nntp · xmpp ·pop3 · sip · smtp ·snmp · ssh ·telnet · rpc · rtcp · rtp ·rtsp· sdp · soap · gtp · stun · ntp· ssdp · bgp · rip 等
我們的tcp/ip協議是傳輸層協議,主要解決資料如何在網路中傳輸,而http是應用層協議,主要解決如何包裝資料。
而在請求過程中的get/post是屬於http協議中的內容。
我們在socket成功的基礎上進行tcp連線的建立。然後web瀏覽器會向web伺服器傳送請求,之後還要以頭資訊的形式向web伺服器傳送一些別的資訊,之後瀏覽器傳送了一空白行來通知伺服器,它已經結束了該頭資訊的傳送。
3 應答過程
應答過程就是伺服器收到這樣乙個請求,進行處理。從它的文件空間中搜尋子目錄mydir的檔案index.html。如果找到該檔案,web伺服器把該檔案內容傳送給相應的web瀏覽器。應答的第一部分是協議的版本號和應答狀態碼,然後會傳送使用者傳送關於它自己的資料及被請求的文件。 web伺服器向瀏覽器傳送頭資訊後,它會傳送乙個空白行來表示頭資訊的傳送到此為結束,接著,它就以content-type應答頭資訊所描述的格式傳送使用者所請求的實際資料。
4 關閉連線
一旦web伺服器向瀏覽器傳送了請求資料,它就要關閉tcp連線。以保證其它web瀏覽器能夠與web伺服器建立連線。
web伺服器原理
一 概述 web伺服器概念較為廣泛,我們最常說的web伺服器指的是 伺服器,它是建立在internet之上並且駐留在某種計算機上的程式。web伺服器可以向web客戶端 如瀏覽器 提供文件或其他服務,只要是遵循http協議而設計的網路應用程式都可以是web客戶端。二 web伺服器工作原理 假設把瀏覽器...
Web伺服器的原理
web伺服器也稱為www world wide web 伺服器,主要功能是提供網上資訊瀏覽服務。www 是 internet 的多 資訊查詢工具,是 internet 上近年才發展起來的服務,也是發展最快和目前用的最廣泛的服務。正是因為有了www工具,才使得近年來 internet 迅速發展,且使用...
web伺服器原理初探
一 靜態網頁的工作原理如下 a 使用者在瀏覽器的位址列輸入要訪問的位址並回車,觸發這個瀏覽請求。b 瀏覽器將請求傳送到web伺服器。c web伺服器接受這個請求,並根據請求檔案的字尾名判定是否為html檔案。d web伺服器從伺服器硬碟的指定位置或記憶體中讀取正確的html檔案然後將它傳送給請求瀏覽...