Apache功能和網站的基礎結構

Apache功能和網站的基礎結構

MIME

MIME(Multipurpose Internet Mail Extensions)多用途互聯網郵件擴展類型。是設定某種擴展名文件用一種應用程序來打開的方式類型,當該擴展名文件被訪問的時候,瀏覽器會自動使用指定應用程序來打開。多用於指定一些客戶端自定義文件名,以及一些媒體文件打開方式。

它是一個互聯網標準,擴展了電子郵件標準,使其能夠支持:

非ASCII字符文本;非文本格式附件(二進制、聲音、圖像等);由多部分(multiple parts)組成的消息體;包含非ASCII字符的頭信息(Header information)。

這個標準被定義在RFC 2045、RFC 2046、RFC 2047、RFC 2048、RFC 2049等RFC中。 MIME改善了由RFC 822轉變而來的RFC 2822,這些舊標準規定電子郵件標準並不允許在郵件消息中使用7位ASCII字符集以外的字符。正因如此,一些非英語字符消息和二進制文件,圖像,聲音等非文字消息原本都不能在電子郵件中傳輸(MIME可以)。MIME規定了用於表示各種各樣的數據類型的符號化方法。 此外,在萬維網中使用的HTTP協議中也使用了MIME的框架,標準被擴展爲互聯網媒體類型。

作用:MIME意爲多目Internet郵件擴展,它設計的最初目的是爲了在發送電子郵件時附加多媒體數據,讓郵件客戶程序能根據其類型進行處理。
其實就是作爲附件進行大數據傳輸!

http的請求方法

HTTP使用內容類型,是指Web服務器向Web瀏覽器返回的文件都有與之相關的類型。所有這些類型在MIME Internet郵件協議上模型化,即Web服務器告訴Web瀏覽器該文件所具有的種類,是HTML文檔、GIF格式圖像、聲音文件還是獨立的應用程序。大多數Web瀏覽器都擁有一系列的可配置的輔助應用程序,它們告訴瀏覽器應該如何處理Web服務器發送過來的各種內容類型。

HTTP通信機制是在一次完整的HTTP通信過程中,Web瀏覽器與Web服務器之間將完成下列7個步驟:

(1) 建立TCP連接

在HTTP工作開始之前,Web瀏覽器首先要通過網絡與Web服務器建立連接,該連接是通過TCP來完成的,該協議與IP協議共同構建Internet,即著名的TCP/IP協議族,因此Internet又被稱作是TCP/IP網絡。HTTP是比TCP更高層次的應用層協議,根據規則,只有低層協議建立之後才能,才能進行更層協議的連接,因此,首先要建立TCP連接,一般TCP連接的端口號是80

(2) Web瀏覽器向Web服務器發送請求命令

一旦建立了TCP連接,Web瀏覽器就會向Web服務器發送請求命令

例如:GET/sample/hello.jsp HTTP/1.1

(3) Web瀏覽器發送請求頭信息

瀏覽器發送其請求命令之後,還要以頭信息的形式向Web服務器發送一些別的信息,之後瀏覽器發送了一空白行來通知服務器,它已經結束了該頭信息的發送。

(4) Web服務器應答

客戶機向服務器發出請求後,服務器會客戶機回送應答,

HTTP/1.1 200 OK

應答的第一部分是協議的版本號和應答狀態碼

(5) Web服務器發送應答頭信息

正如客戶端會隨同請求發送關於自身的信息一樣,服務器也會隨同應答向用戶發送關於它自己的數據及被請求的文檔。

(6) Web服務器向瀏覽器發送數據

Web服務器向瀏覽器發送頭信息後,它會發送一個空白行來表示頭信息的發送到此爲結束,接着,它就以Content-Type應答頭信息所描述的格式發送用戶所請求的實際數據

(7) Web服務器關閉TCP連接

一般情況下,一旦Web服務器向瀏覽器發送了請求數據,它就要關閉TCP連接,然後如果瀏覽器或者服務器在其頭信息加入了這行代碼

Connection:keep-alive

TCP連接在發送後將仍然保持打開狀態,於是,瀏覽器可以繼續通過相同的連接發送請求。保持連接節省了爲每個請求建立新連接所需的時間,還節約了網絡帶寬。

ssl和https的區別

Web服務器的工作模式

httpd協議是超文本傳輸協議,用於網絡中傳輸動態和靜態資源
httpd工作模式有三種:
1. Prefork: 每個進程響應一個請求;穩定性好,但併發能力有限,最多支持1024; 預先生成多個空閒進程;
2. Worker: 每個進程可生成多個線程,每個線程響應一個請求;預先生成多個空閒線程;
3. Event: 一個進程響應n個請求;可同時啓動多個進程;httpd2.2 爲測試版本,httpd2.4 爲穩定版;

CGI:公共網關接口

CGI(Common Gateway Interface) 是WWW技術中最重要的技術之一,有着不可替代的重要地位。CGI是外部應用程序(CGI程序)與Web服務器之間的接口標準,是在CGI程序和Web服務器之間傳遞信息的過程。CGI規範允許Web服務器執行外部程序,並將它們的輸出發送給Web瀏覽器,CGI將Web的一組簡單的靜態超媒體文檔變成一個完整的新的交互式媒體。

Httpd返回的狀態碼

1)HTTP常見狀態碼。

1xx:信息性狀態碼

    100:請求繼續

    101:轉換協議

2xx:成功狀態碼

    200:ok,表示請求沒有問題。

    201:created,創建服務器對象的請求。

    202:Accepted,請求已被接受。單服務器還未執行任何動作。

    203:Non-Authoritative Information,實體首部。

    204:No Content,響應報文中包含若干首部和一個狀態行,但沒有實體的主體部分。

    205:Reset Content,主要用於瀏覽器的代碼,負責告知瀏覽器清除當前頁面中的所有html表單元素。

    206:Partial Content,成功執行了一個部分或Range範圍請求。

3xx:重定向狀態碼。

    301:move permanently,永久重定向,在響應報文中使用首部“location:URl”

    302:found,臨時重定向,在響應報文中使用首部“location:URL”指定臨時資源位置。

    303:not modified,條件是請求中使用。

    304:Not modified,客戶端可以通過所包含的的請求首部,使其請求變成有條件的。

    305:Use Proxy,必須通過一個代理來訪問資源。

4xx:客戶端類的錯誤狀態碼。

    400:Bad Request,用於告知客戶端它發送了一個錯誤的請求。

    401:Unauthorize 認證。

    402:Payment Required 保留還未使用。

    403:Forbidden,請求被服務器拒絕。

    404:not found,服務器無法找到請求的url。

    405:Method not allowed,不允許使用此方法請求響應的url。

    406:Not Acceptable,服務器於客戶端沒有可接受的url相匹配的資源。

    407:Proxy Authentication Required,對資源要求進程認證的代理服務器。

    408:Request timeout,請求超時的狀態碼。

    409:Conflict,請求資源時引發的一些衝突。

5xx:服務器端類的錯誤。

    500:Internal Server Error,服務器內部錯誤。

    501:Not Implemented,客戶端發起的請求超出服務器的能力範圍。

    502:Bad gateway,代理服務器從上游收到了一條假響應。

    503:Service Unavailable,服務器此時無法提供服務。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章