1. 簡述ASP.NET Web網頁的工作原理。
ASP.NET的工作原理是:首先,有一個HTTP請求發送到Web伺服器要求訪問一個Web網頁。 Web伺服器通過分析客戶的HTTP請求來定位所請求網頁的位置。如果所請求的網頁的文件名的後綴是 aspx,那麼就把這個文件傳送到aspnet_isapi.dll進行處理,由aspnet_isapi.dll把ASP.NET代碼提交給CLR。如果以前沒有執行過這個程序,那麼就由CLR編譯並執行,得到純HTML結果;如果已經執行過這個程序,那麼就直接執行編譯好的程序並得到純HTML結果。最後把這些純HTML結果傳回瀏覽器作為HTTP響應。瀏覽器收到這個響應之後,就可以顯示Web網頁。
2. WEB服務的工作原理
一個 Web 伺服器也被稱為 HTTP 伺服器,它通過 HTTP 協議與客戶端通信。這個客戶端通常指的是 Web 瀏覽器。一個基於 Java 的 Web 伺服器用到二個重要的類,java.net.Socket 與 java.net.ServerSocket ,並通過 HTTP 消息通信。因此,本文從討論 HTTP 與這二個類開始,然後我將解釋一個與本文相關的簡單的 Web 應用。
The Hypertext Transfer Protocol(HTTP)
HTTP 是一種讓 Web 伺服器與瀏覽器(客戶端)通過 Internet 發送與接收數據的協議。它是一個請求、響應協議--客戶端發出一個請求,伺服器響應這個請求。HTTP 運用可靠的 TCP 連接,通常用的 TCP 80 埠。它的第一個版本是 HTTP/0.9 ,然後被 HTTP/1.0 取代。當前的版本是 HTTP/1.1 ,由RFC2616(.pdf) 定義。
本節主要對應 HTTP 1.1 ,足夠使你充分理解由 Web 伺服器程序發出的消息。如果你對更加詳細的知識有興趣,可以參考 RFC2616 。
在 HTTP 中,客戶端總是通過建立一個連接與發送一個 HTTP 請求來發起一個事務。伺服器不能主動去與客戶端聯系,也不能給客戶端發出一個回叫連接。客戶端與伺服器端都可以提前中斷一個連接。例如,當用一個瀏覽器下載一個文件時,你可以通過點擊「停止」鍵來中斷文件的下載,關閉與伺服器的 HTTP 連接。
HTTP 請求
一個 HTTP 請求包含三個部分:
Method-URI-Protocol/Version方法-地址-版本
Request header請求頭
Entity body請求實體
下面是一個 HTTP 請求實例:
POST /servlet/default.jsp HTTP/1.1
Accept: text/plain; text/html
Accept-Language: en-gb
Connection: Keep-Alive
Host: localhost
Referer: http://localhost/ch8/SendDetails.htm
User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)
Content-Length: 33
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
LastName=Franks&FirstName=Michael
The Method-URI-Protocol/Version 在這個請求的第一行:
POST /servlet/default.jsp HTTP/1.1
其中 POST 是請求的類型。每個客戶端 HTTP 請求可以是 HTTP 規范中指定的許多請求類型中的一種。HTTP 1.1 支持七種類型的請求,它們是 GET,POST,HEAD,OPTIONS,PUT,DELETE,TRACE。其中 GET 與 POST 是 Internet 應用中經常用到的二種請求類型。
URI 完整地指定了 Internet 資源。一個 URI 通常被解析為相對伺服器的根目錄。這樣,它應該總是以一個 '/' 前綴開始。一個 URL 實際上是 URI 的一種類型。
Version 指的是該 HTTP 請求所用到的 HTTP 協議版本。
請求頭包含了客戶端環境與請求實體的一些有用的信息。例如它包含瀏覽器設定的語言、實體的長度等等。每條請求頭用回車換行符(CRLF)分開。
一個非常重要的空行分開了請求頭與實體,它標志著實體內容的開始。一些 Internet 開發書籍認為這個 CRLF 空行是 HTTP 請求的第四個部分。
在上面的 HTTP 請求中,實體只是簡單以下的一行:
LastName=Franks&FirstName=Michael
在一個典型的 HTTP 請求中,請求實體內容會長得多。
HTTP 響應
與請求相似,HTTP 響應也由三部分組成:
Protocol-Status code-Description協議狀態 描述代碼
Response headers響應頭
Entity body響應實體
以下是一個 HTTP 響應的實例:
HTTP/1.1 200 OK
Server: Microsoft-IIS/4.0
Date: Mon, 3 Jan 1998 13:13:33 GMT
Content-Type: text/html
Last-Modified: Mon, 11 Jan 1998 13:23:42 GMT
Content-Length: 112
<html>
<head>
<title>HTTP Response Example</title></head><body>
Welcome to Brainy Software
</body>
</html>
響應頭的第一行類似請求頭的第一行,告訴你所用的協議是 HTTP 1.1 ,請求成功(200=success),以及沒有任何問題。
響應頭類似請求頭也包含了一些有用的信息。響應的實體響應本身的 HTML 內容。頭與實體之間由回車換行的空行(CRLF)分開。
Socket 類
一個 socket 是一個網路連接的端點,它使得一個應用可以從網路讀與寫。在不同電腦上的二個應用軟體能夠通過收發位元組流而彼此通信。要發一個信息到另一個應用程序,你需要知道它的IP地址,以及它的 socket 埠號。在 Java 中,一個 socket 用 java.net.Socket 來實現。
要創建一個 socket ,你可以用 Socket 類中幾個構建方法中的一個。其中一個接受主機名與埠號作為參數:
new Socket("yahoo.com", 80);
一旦你成功地創建了一個 Socket 類的實例,你就可以用它去發送與接收位元組流了。要發送位元組流,你需要呼叫 Socket 類的 getOutputStream 方法來得到一個 java.io.OutputSteam 對象。要發送文本到遠程的程序,你通常需要從返回的 OutputStream 創建一個 java.io.PrintWriter 對象。要從連接的另一端接收位元組流,你需要呼叫 Socket 類的 getInputStream 方法,它返回一個 java.io.InputStream 對象。
以下代碼創建一個可以與本地 HTTP 伺服器通信的 socket (127.0.0.1 表示一個本地的主機),發送一個 HTTP 請求,並接收從伺服器的響應。它還創建一個 StringBuffer 對象來接受響應,並列印到控制台。
Socket socket= new Socket("127.0.0.1", "8080");
OutputStream os= socket.getOutputStream();
boolean autoflush = true;
PrintWriter out= new PrintWriter( socket.getOutputStream(), autoflush );
BufferedReader in = new BufferedReader(
new InputStreamReader( socket.getInputStream() ));
// send an HTTP request to the web server
out.println("GET /index.jsp HTTP/1.1");
out.println("Host: localhost:8080");
out.println("Connection: Close");
out.println();
// read the response
boolean loop= true;
StringBuffer sb = new StringBuffer(8096);
while (loop) {
if ( in.ready() ) {
int i=0;
while (i!=-1) {
i = in.read();
sb.append((char) i);
}
loop = false;
}
Thread.currentThread().sleep(50);
}
// display the response to the out console
System.out.println(sb.toString());
socket.close();
注意要從 web 伺服器得到正確的響應,你必須要發送用 HTTP 協議編譯了的 HTTP 請求。如果你看了上面的 HTTP 部分,你應該能夠理解上面代碼中的 HTTP 請求。
3. Web程序訪問的基本原理是什麼
WEB應用時是基於HTTP協議的,而Http協議時一種超文本傳輸協議,是計算機在網路中通信的一種規則。
Http請求信息包括請求行、請求頭、空行和消息體。從請求行裡面可以得到Http的信息發送方式(方式有很多種,但通常是GET或POST中的一種),請求的URL,以及Http版本;請求頭裡面是一些客服端的信息,比如使用的是什麼瀏覽器,可以接受那些類型的數據等等。
Http響應信息包括狀態行、響應頭、空行、消息體。狀態行由Http協議版本、響應狀態碼和響應描述組成。
WEB伺服器最早只能發送靜態頁面,為了解決這個問題,人們想到的辦法是CGI通用網關介面,用於調用其他程序產生內容。但是並發量一旦比較高的時候,這種CGI就顯得性能很差。不過這樣的思想給後面的技術提供了思路。
4. WEB伺服器的工作原理
80埠是為HTTP(HyperText
Transport
Protocol,超文本傳輸協議)開放的,這是上網沖浪使用最多的協議,主要用於在WWW(World
Wide
Web,萬維網)服務上傳輸信息的協議。我們可以通過HTTP地址加「:80」(即常說的「網址」)來訪問網站的,比如<a
href="
http://www.cce.com.cn:80"
target="_blank">
http://www.cce.com.cn:80</a>,因為瀏覽網頁服務默認的埠號是80,所以只要輸入網址,不用輸入「:80」。
埠漏洞:有些木馬程序可以利用80埠來攻擊計算機的,比如Executor、RingZero等。
操作建議:為了能正常上網沖浪,我們必須開啟80埠。
在Windows2000/XP/Server2003中要查看埠,可以使用NETSTAT命令:
「開始">"運行」>「cmd」,打開命令提示符窗口。在命令提示符狀態下鍵入「NETSTAT-a-n」,按下回車鍵後就可以看到以數字形式顯示的TCP和UDP連接的埠號及狀態.
命令格式:Netstat-a-e-n-o-s
-a表示顯示所有活動的TCP連接以及計算機監聽的TCP和UDP埠。
-e表示顯示乙太網發送和接收的位元組數、數據包數等。
-n表示只以數字形式顯示所有活動的TCP連接的地址和埠號。
-o表示顯示活動的TCP連接並包括每個連接的進程ID(PID)。
-s表示按協議顯示各種連接的統計信息,包括埠號。
關閉埠
比如在Windows2000/XP中關閉SMTP服務的25埠,可以這樣做:首先打開「控制面板」,雙擊「管理工具」,再雙擊「服務」。接著在打開的服務窗口中找到並雙擊「SimpleMailTransferProtocol(SMTP)」服務,單擊「停止」按鈕來停止該服務,然後在「啟動類型」中選擇「已禁用」,最後單擊「確定」按鈕即可。這樣,關閉了SMTP服務就相當於關閉了對應的埠。
開啟埠
如果要開啟該埠只要先在「啟動類型」選擇「自動」,單擊「確定」按鈕,再打開該服務,在「服務狀態」中單擊「啟動」按鈕即可啟用該埠,最後,單擊「確定」按鈕即可。
另外在網路連接屬性中,選擇「TCP/IP協議」屬性,打開高級TCP/IP設置,在選項的那個頁面打開TCP/IP篩選,在出現的設置窗口中也可以根據實現情況設置埠的打開和關閉,默認是未啟用TCP/IP篩選。
5. 簡述web工作原理
Web的工作原理:
1、瀏覽器地址欄輸入想要訪問網站首頁的地址;
2、用戶向瀏覽器發送訪問首頁的請求;
3、伺服器收取客戶端的的訪問請求;
4、伺服器處理請求(若首頁動態文檔需要經過數據處理再返回,若為靜態文檔直接返回該文檔即可);
5、伺服器將請求的處理結果在客戶端的瀏覽器顯示。
(5)web程序訪問工作原理擴展閱讀:
web工作表現形式
1、超文本(Hyper text)
超文本是一種用戶介面方式,用以顯示文本及與文本相關的內容。現時超文本普遍以電子文檔的方式存在。
其中的文字包含有可以鏈接到其他欄位或者文檔的超文本鏈接,允許從當前閱讀位置直接切換到超文本鏈接所指向的文字。
2、超媒體(hypermedia)
超媒體是超級媒體的簡稱。是超文本(hypertext)和多媒體在信息瀏覽環境下的結合。用戶不僅能從一個文本跳到另一個文本,而且可以激活一段聲音,顯示一個圖形,甚至可以播放一段動畫。
Internet採用超文本和超媒體的信息組織方式,將信息的鏈接擴展到整個Internet上。Web就是一種超文本信息系統,Web的一個主要的概念就是超文本鏈接。
3、超文本傳輸協議(HTTP,HyperText Transfer Protocol)是互聯網上應用最為廣泛的一種網路協議。
參考資料來源:網路—web
6. 簡述web訪問的工作原理
web本意是蜘蛛網和網的意思。現廣泛譯作網路、互聯網等技術領域。表現為三種形式,即超文本(hypertext)、超媒體(hypermedia)、超文本傳輸協議(HTTP)等。
當你想進入一個網頁, 或者其他網路資源的時候,通常你要首先在你的瀏覽器上鍵入你想訪問網頁的統一資源定位符(Uniform Resource Locator),或者通過超鏈接方式鏈接到那個網頁或網路資源。這之後的工作首先是URL的伺服器名部分,被名為域名系統的分布於全球的網際網路資料庫解析,並根據解析結果決定進入哪一個IP地址(IP address)。
接下來的步驟是為所要訪問的網頁,向在那個IP地址工作的伺服器發送一個HTTP請求。在通常情況下,HTML文本、圖片和構成該網頁的一切其他文件很快會被逐一請求並發送回用戶。
網路瀏覽器接下來的工作是把HTML、CSS和其他接受到的文件所描述的內容,加上圖像、鏈接和其他必須的資源,顯示給用戶。這些就構成了你所看到的「網頁」。
大多數的網頁自身包含有超鏈接指向其他相關網頁,可能還有下載、源文獻、定義和其他網路資源。像這樣通過超鏈接,把有用的相關資源組織在一起的集合,就形成了一個所謂的信息的「網」。這個網在網際網路上被方便使用,就構成了最早在1990年代初蒂姆·伯納斯-李所說的萬維網
7. 試述WEB服務的工作原理
Web服務的工作原理是各公司從注冊表(ebXML或UDDI的注冊表)獲得發布信息,建立滿足要求的執行過程,然後向注冊表發布它們的服務。以後,其他公司發現注冊表中列出的一項服務,同意已制定的標准,然後開展業務。一旦在標准上取得一致並且約定的規則得到滿足,應用程序就可以接管交易處理,因而從開展業務的開銷中去除了人工互動。在這種模型中,通過利用現有基礎設施,應用可以交換有關公司希望提供和消費的服務的信息。此外,應用還可以查詢注冊表,查找可以以更優惠條件提供同樣服務的其他應用(公司)。
在標准方面,UDDI作為一種用於Web的黃頁被編制出來,它可以通過WSDL訪問。WSDL支持類似於UDDI特性的ebXML注冊特性。除了與UDDI的資料庫特性競爭外,ebXML的Web服務部分曾被考慮與SOAP標准進行競爭。幸運的是,OASIS已將SOAP集成到ebXML中。目前,這些協議既相互重疊(UDDI和ebXML)又相互補充(SOAP和ebXML)。
·UDDI(通用描述、發現和集成):UDDI是Microsoft、IBM和Ariba為制定一項用於描述、注冊和發現Web服務的Internet標准而成立的聯盟。由此而來的UDDI框架是「一個企業可以注冊其Web服務並查找其他Web服務的資料庫集合。」應用程序使用SOAP
API來讀取或提供與UDDI相關的WSDL文檔。
·WSDL(Web服務描述語言):WSDL文件,即UDDI和ebXML注冊表的子集合,提供聯系信息、Web服務的描述、它們的位置以及如何調用它們的規范。UDDI注冊表按行業類別和地理位置細分。WSDL文件常常由另外的信息源(如,COM
IDL或CORBA文件或EJB類定義)生成。WSDL用於描述通過Internet(或其他網路)可訪問的程序以及同這些程序進行交流的信息格式和協議。它可以使Web服務的功能通過標準的方式展示出來,從而使Web服務和開發工具更易兼容。
·SOAP(簡單對象訪問協議):SOAP是使用XML通過Internet發送信息和訪問動態Web服務的友好界面。其主要作用在於確保信息通過互聯網在業務應用之間傳輸的可靠性。作為一種用在分布式環境中交換結構化數據的協議,它包括三個部分:信封、報頭(可選)和協議消息體。信封標記SOAP消息的開始與結束。它還可以規定在網路上數據的編碼規則。SOAP報頭可以包含發送給一個地址或多個地址的郵件、一個支付代碼或有關RPC類型互動的信息。一個信封中可以有多個報頭或完全沒有報頭。SOAP消息體傳送自描述結構或RPC類型介面格式的數據。
·ebXML(電子業務XML):ebXML標準是由OASIS和UN/CEFACT為幫助使XML成為開展電子數據交易的世界性語言。ebXML架構以業務過程和信息模型開始,將這個模型映射到XML文件並定義處理這些文件以及在交易夥伴之間交換這些文件的應用程序的要求。同UDDI注冊表一樣,ebXML注冊表以標準的文檔格式列出一家公司的能力的清單,使企業可以通過這個注冊表找到其他企業、定義協議以及交換幫助開展商務交易的XML消息。ebXML的目標是使所有這些事務可以在Internet上被自動執行,無需人工干預。