httpd服務歸納:網絡服務基礎篇

一、網絡傳輸基礎

    1. 套接字:兩類 

        1) Unix Sock: 一種本地文件系統 

        2) Socket: IP port (IP:port或IP.port) 

    2. 傳輸層協議: 

        1) 有鏈接的協議:TCP 

        2) 無連接的協議: UDP 

    3. 套接字類型: 

        1) TCP 套接字 

        2) UDP 套接字 

        3) raw 套接字
    4. C/S(client / server)模型:包含以下兩部分

        1) 通信子網:傳輸層協議 

        2) 應用層協議: 如:http, https, smtp, pop, imap, ftp, ldap 

二、 HTTP協議介紹: 

    1. http: hypertext transport protocol (超文本傳輸協議,最早用來傳輸html文檔)

    2. html: hypertext mark language (超文本標記語言)

    3. Client: Browser   

    4. Server: http Server  
    5. html格式的文件和CSS(Cascading Style Sheet)樣式表

<html>
		<head>
			<title></title>
		</head>
		<body>
			<h1></h1>
				<p></p>
			<h2></h2>
				<p></p>
		</body>
</html>

    6. 關于動態頁面: 需要在服務器端或者客戶端運行腳本

    7. 一個頁面中:可能會包含多個頁面對象,使用URL和URI標記

        1) URI: Uniform Resource Indentifier 

        2) URL: Uniform Resource Locator 

三、 關于HTTP協議與服務; 

    1. 協議版本

        http/0.9: 1991, 僅用于傳輸html文檔 

        http/1.0: 支持多媒體數據的處理,使用keep-alive機制,有緩存功能

        http/1.1: 擁有更多請求方法,更加精細的緩存控制,擁有持久連接 

    2. http協議特點: 

        是一種無狀態協議(stateless)協議 ,一次HTTP駛入結束后,連接即行斷開 

        加速方式:

            并行請求

            持久連接     

四、 HTTP報文: 

    1. HTTP事務:一次請求以及與其對應的響應 

    2. HTTP方法:GET, PUT, HEAD, POST(遞交表單),DELETE 

    3. HTTP請求: request 

        HTTP請求報文: 

        報文格式: 

            <method><request-URL><version>
            <headers>
            ## 空兩行
            <entity-body>

        HTTP響應:response

            HTTP響應報文: 

         報文格式: 

            <version><status><reason-phrase>
            <headers>
            ## 空兩行
            <entity-body>

    4. 各元素的含義:  

       <method>: 請求方法, 希望服務器端執行的動作,如GET、HEAD、POST等

       <request-url>: 請求的資源,可以是相對路徑,也是完整的URL

       <version>:協議版本,格式HTTP/<major>.<minor>,如http/1.0

       <headers>:HTTP首部

       <status>: 狀態碼

       <reason-phrase>:原因短語,數字狀態碼易讀信息

       <entity-body>: 主體部分

     5. 首部 

        1) 通用首部:請求和響應都可以使用的首部 

        2) 請求首部 

            Client-IP: 客戶端IP, 此時是應用層,所以還需要指

            Host: 請求的主機名和端口號,虛擬主機環境下用于不同的虛擬主機

            Referer: 請求當前資源的上一級URL

            User-Agent: 用戶代理,使用什么工具發出的請求

            Accept請求首部: 用戶表明客戶自己更傾向于支持的能力

                Accept: 指明服務器能發送的媒體類型

                Accept-Charset: 支持使用的字符集

                Accept-Encoding: 支持使用的編碼方式 

                Accept-Language: 支持使用的語言 

            條件請求首部: 

                Expect: 

                If-Modified-Since: 是否在指定時間以來修改過此資源 

                If-None-Match: 與擴展標簽相關

            跟安全相關的請求首部: 

                Authorization: 客戶端提交給服務端認證數據,如賬號和密碼 

                Cookie/Cookie2:  客戶端發送給服務器端的身份標識 

        3) 響應首部

             Age: 響應持續的時間

             Server: 服務器向客戶端表明,服務器程序名稱版本

             協商相關響應首部: 

                Accept-Ranges: 對當前資源來說,服務器所能夠接受的范圍類型 

                Vary: 首部列表,服務器會根據列表中內容挑選出最適合的版本發給客戶端 

             跟安全相關的響應首部; 

                Set-Cookie/Set-Cookie2: 服務器端在某客戶端第一次請求時,發給的的令牌 

                WWW-Authentication: 質詢,要求客戶端提供賬號和密碼 

        4) 實體首部:用于指定實體屬性

            Location: 資源的新位置 

            Allow: 允許對此實體請求的方法 (回應options請求)

            內容相關實體首部: 

                Content-Encoding: 編碼格式 

                Content-Language: 編碼語言 

                Content-Length: 長度 

                Content-Location: 資源重定向時候使用

                Content-Range: 內容范圍 

                Content-Type: 類型 

            緩存相關內容首部:

                ETag: 實體標簽

                Expires: 過期期限 

                Last-Modifed: 上一次的修改時間 

        5) 擴展首部:非標準首部,可能是由程序開發者創建 

     6. HTTP請求方法: 

        GET: 請求獲取一個資源,需要服務器發送 

        HEAD: 跟GET 形似,但其不需要服務器發送資源,只傳回響應首部即可 

        POST: 支持HTML表單提交,表單中包含用戶填入的數據,這些數據會發送到服務器端,由服務器存儲至某個位置(例如發送處理程序)

        PUT:與GET相反,向服務器寫入文檔, 例如發布系統 

        DELETE: 請求刪除URL指向的資源 

        OPTIONS: 探測服務器端對某自愿所支持的請求方法 

        TRACE:跟蹤請求要經過的防火墻,代理或者網關 

     7. HTTP狀態碼:

        1xx: 信息性狀態碼

        2xx:成功狀態碼

            200: OK

            201: Created

        3xx:重定向狀態碼

            301:Moved Permanently, 在響應報文中使用首部“Location: URL”指定資源現在所處的位置;

            302:Found, 在響應報文中使用首部“Location: URL”指定臨時資源位置;

            304:Not Modified, 條件式請求中使用;

        4xx:客戶端類的錯誤 

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

            404:Not Found,服務器無法找到請求的URL

            405:Method Not Allowed,不允許使用此方法請求相應的URL

        5xx:服務器類的錯誤

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

            502:Bad Gateway,代理服務器從上游收到了一條偽響應;

            503:Service Unavailable,服務器此時無法提供服務,但將來可能可用;

五、一次web請求的基本過程 

web service.jpg

1. 建立連接

2.  接收請求

3. 處理請求

4. 訪問資源

5. 構建響應

6. 發送響應

7. 記錄日志


六、Web服務器輸入/輸出結構:

    1.  單線程I/O結構

    2.  多線程I/O結構

    3.  復用的I/O結構:單個線程響應多個請求

    4.  復用多線程I/O結構:多個線程,每個線程響應多個請求

原創文章,作者:以馬內利,如若轉載,請注明出處:http://www.www58058.com/3718

(0)
以馬內利以馬內利
上一篇 2015-05-04 18:05
下一篇 2015-05-04 18:39

相關推薦

  • 二、(2)bash的工作特性之:命令執行狀態返回值及命令行展開

    bash 工作特性 命令執行狀態 命令行展開

    2018-01-10
  • 如何查看當前系統版本的版本號

    作為一名系統管理員,了解系統版本號是必然。因為不同大版本之間的命令和啟動流程等之間有很大的差異;     一、在/etc/system-release 里面查看         ~]#ls -l /etc/system-release &n…

    Linux干貨 2016-07-29
  • linux進程管理及計劃任務

    進程管理: 什么是進程?   在Linux系統當中:觸法任何一個事件時,系統都會將它定義成為一個進程,并且給予這個進程一個ID,稱為PID,同時依據觸發這個進程的用戶與相關屬性關系,給予這個PID一組有效的權限設置。 進程與程序: 程序(program):通常為二進制程序放置在存儲媒介中,以物理文件的形式存在。 進程(process):程序被觸發后…

    Linux干貨 2016-09-13
  • 配置HTTPS

    環境為CentOS 7.3、httpd2.4.6 一 搭建證書 CA 主機為192.168.29.3 client主機為 192.168.29.100 1 生成私鑰 [root@centos7 ~]# (umask 077 ; openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096) Generating…

    2017-06-06
  • FHS-文件系統層級結構標準

    文件系統層級結構標準(FHS:Filesystem Hierarchy Standard) 文件系統層次結構標準(英語:Filesystem Hierarchy Standard,FHS)定義了Linux操作系統中的主要目錄及目錄內容。當前的版本是2.3,在2004年1月29日公布。多數Linux發行版遵從FHS標準并且聲明其自身政策以維護FHS的要求。然而…

    Linux干貨 2016-10-16
  • vim 常見用法、計劃任務和腳本初探

    vim的常用方法 gg:跳至首行 G:跳至魔行 dd:刪除光標所在行 ndd:刪除光標及以下(n-1)行 yy:復制光標所在行 p:把復制行粘貼在光標下一行 P:粘貼在上一行 u:取消上一步操作 /string:查找關鍵字 n:往下查詢 N:往上查詢 %s/string1/string2/:把string1替換為string2,后面加g表示全局替換 set&…

    Linux干貨 2016-12-04

評論列表(1條)

  • stanley
    stanley 2015-05-04 18:08

    贊,tcp/ip數據流分析吊爆了

欧美性久久久久