http協議簡介

    http:Hyper Text Transfer Protocol,超文本傳輸協議。是互聯網上應用最為廣泛的一種網絡協議。所有的WWW文件都必須遵守這個標準。設計HTTP最初的目的是為了提供一種發布和接收HTML頁面的方法。1960年美國人Ted Nelson構思了一種通過計算機處理文本信息的方法,并稱之為超文本(hypertext),這成為了HTTP超文本傳輸協議標準架構的發展根基。Ted Nelson組織協調萬維網協會(World Wide Web Consortium)和互聯網工程工作小組(Internet Engineering Task Force )共同合作研究,最終發布了一系列的RFC,其中著名的RFC 2616定義了HTTP 1.1。

    html:Hyper Text Mark Language,超文本標記語言。標準通用標記語言下的一個應用?!俺谋尽本褪侵疙撁鎯瓤梢园瑘D片、鏈接,甚至音樂、程序等非文字元素。超文本標記語言的結構包括“頭”部分(英語:Head)、和“主體”部分(英語:Body),其中“頭”部提供關于網頁的信息,“主體”部分提供網頁的具體內容。

    html文本框架:

            <html>
                <head>
                    <title>TITLE</title>
                </head>
                <body>
                    <h1>H1</h1>
                        <p></p>
                    <h2>H1</h2>
                        <p> <a href="admin.html">ToGoogle</a> </p>
                </body>
            </html>

    html文檔的生成方式:

        靜態:直接編寫

        動態:編程語言編寫的程序可輸出html格式的結果,如,php,jsp,asp,.net

        CGI:通用網關接口(Common Gateway Interface/CGI)是一種重要的互聯網技術,可以讓一個客戶端,從網頁瀏覽器向執行在網絡服務器上的程序請求數據。CGI描述了客戶端和服務器程序之間傳輸數據的一種標準。

    http首部分為三類:通用首部,請求首部,響應首部

        通用首部:

            Connection:定義C/S之間關于請求、響應的有關選項

            Cache-Control:緩存控制

        請求首部:

            Client-IP:客戶端IP地址
            Host:請求的主機
            Referer:指明了請求當前資源原始資源的URL,可做防盜鏈控制
            User-Agent:用戶代理
            Accept:服務端能夠發送的媒體的類型
            Accept-Charset:可發送的字符集
            Accept-Encoding:可發送的編碼方式
            Accept-Language:可發送的語言
            條件式請求;安全相關請求

    響應首部:

            Age:從最初創建開始,響應持續時間
            Server:向客戶端說明自己的程序名稱和版本
            協商首部:
                Vary:首部列表,服務器會根據列表中的內容挑一個最適用的版本發送給客戶端
            跟安全相關:
                WWW-Authentication
                Set-Cookie

 實體首部:

            Location:資源的新位置
            Allow:允許對此資源使用的請求方法
            內容相關的首部:
                Content-Encoding:編碼方式
                Content-Language:主體最適宜使用的自然語言
                Content-Length:主體的長度或尺寸
                Content-Location:資源實際所處的位置
                Content-Type:主體的對象類型
            緩存相關:
                Etag:與實體相關的實體標記
                Expires:實體不再有效,需要再次獲取日期和時間
                Last-Modified:實體最后一次被修改的時間

擴展首部:非標準首部,可由程序猿自行創建,如:X-Forward-for,X-Via

http協議請求報文

        <method><request-URL><version>
        <HEADERS>
        <entity-body>

http協議簡介

    http協議響應報文格式

        <version><status><reason-phrase>
        <HEADERS>
        <entity-body>

http協議簡介

    解釋:sp(Space)空格符;cr ( carriage return )回車符;lf(line feed)換行符。

        <method>:請求方法

        <request-URL>:請求的資源,可以是相對路徑,如/image/log.jpg,也可以是絕對路徑

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

        <headers>:各種可以使用的首部

        <status>:狀態碼

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

        注意:http協議是無狀態,stateless;無連接

http方法:

    GET:從服務器端獲取數據,請求獲取一個資源
    HEAD:跟GET近似,但其不需要服務響應請求的資源,而返回響應首部
    POST:基于HTML表單向服務器提交數據,服務通常需要存儲此數據;(位置:通常為關系型數據庫)
    PUT:與GET相反,向服務器發送資源,服務器通常需要存儲此資源;(位置:通常為文件系統)
    DELETE:刪除URL指向的資源
    OPTIONS:探測服務器端對請求的URL所支持使用的請求方法
    TRACE:跟一次請求中間所經過的代理服務器、防火墻或網關等

http狀態碼:

    1XX:信息性狀態碼
    2XX:成功狀態碼,如200,ok;201,created
    3XX:重定向類狀態碼;
        301,Moved Permanently,永久重定向;
        302,臨時重定向,會在響應報文中使用“Location:新位置”,
        304,Not Modified
    4XX:客戶端類錯誤
        403:請求被拒絕,Forbidden
        404:Not Found
        405:Method Not Allowed
    5XX:服務器類的錯誤
        500:Internal Server Error,服務器內部錯誤,語法錯誤等
        502:Bad Gateway,代理服務器從上游服務器收到一條偽響應
        503:Service Unavailable,服務暫時不可用

web服務器:
            理解用戶請求的資源格式不僅僅是純html格式的文檔
                靜態資源
                動態資源:
                    application/php

        web資源:
            資源類型:MIME(Multipurpose Internet Mail Extensions)多用途互聯網郵件擴展,是設定某種擴展名的文件用一種應用程序來打開的方式類型,HTTP協議中也使用了MIME的框架,標準被擴展為互聯網媒體類型。

                major/minor
                    text/html
                    text/plain
                    image/jpeg
                    image/gif
                    vedio/mpeg4
                    application/vnd.ms-powerpoint

            資源名稱:URI (Uniform Resource Idnentifier)
                URL:描述一個特定服務器上某資源的特定位置
                    http://www.magedu.com:80/download/bash-4.3.1-1.rpm
                    分為三部分:
                        scheme(方案):http://
                        服務器:www.magedu.com:80
                        特定服務器上的資源:/download/bash-4.3.1-1.rpm

http事務:打開到關閉一個連接的過程

http協議版本:

    http 0.9:僅用于傳輸HTML文檔

    http 1.0:引入MIME機制,從而支持多媒體數據;首部引入keep-alive(持久連接),請求到資源后不會四次揮手斷開,支持緩存

    http 1.1:更多請求方法,更精細緩存控制,持久連接(persistent);

web服務器的I/O結構:

    單進程模型:串行

    多進程模型:每個進程響應一個用戶請求實現并發的效果

    復用的I/O機制:一個進程生成多個線程,單個線程響應一個用戶請求

    復用的I/O機制:多個線程,每個線程響應多個用戶請求

原創文章,作者:秦,如若轉載,請注明出處:http://www.www58058.com/9245

(0)
秦
上一篇 2015-11-18 11:09
下一篇 2015-11-18 11:11

相關推薦

  • iptables

    Evernote Export   基于本機服務器的iptables: 創建、重命名、刪除自定義chain ~]# iptables -N testchain ~]# iptables -nL Chain INPUT (policy ACCEPT) target     prot opt source    …

    Linux干貨 2016-11-20
  • Nginx之ngx_http_proxy_module模塊詳解

    一、正反向代理簡介       1、正向代理:局域網內的機器借助于代理服務器訪問局域網外的網站          這時正向代理的功能:         &nbs…

    2017-06-25
  • 編譯安裝httpd

    編譯安裝httpd   1 去官網下載源碼包                                      為避免非法軟件,一定要去官網下載http…

    2017-04-24
  • Linux FHS-文件系統層級結構標準簡要說明

    Linux FHS-文件系統層級結構標準簡要說明 FHS(Filesystem Hierarchy Standard) FHS針對目錄樹架構對以下三個目錄進行定義:     / (root, 根):與開機系統有關      /usr (unix software res…

    Linux干貨 2017-03-26
  • grep,find

    顯示當前系統上root、fedora、user用戶的默認shell: 2.找出/etc/rc.d/init.d/functions文中單詞后跟一組小括號的行 3.使用echo命令輸出一個絕對路徑,使用grep取出其基名: 4.找出ifconfig命令結果中的1-255之間的數字 5.寫一個模式,匹配合理的ip地址 6.寫一個模式,匹配出郵箱地址 7.查找/v…

    Linux干貨 2016-11-27
  • N22-第一周(作業)

    馬哥教育網絡班22期-第一周課程練習:   一.描述計算機的組成及其功能       計算機組成:CPU :包含控制器,運算器,寄存器,緩存。通過時序復用的方式來處理加工來自輸入設備的指令或數據,協調各組件之間的工作       存儲器(內存):編址存儲單元陣列,用于暫時存放CP…

    Linux干貨 2016-08-13

評論列表(1條)

  • stanley
    stanley 2015-11-18 11:10

    這些年關注底層協議的人不多了,贊,加油!

欧美性久久久久