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
下一篇 2015-11-18

相關推薦

  • awk詳解

    —————————— 課外練習 只處理用戶ID為奇數的行,并打印用戶名和ID號 [root@localhost ~]# awk -F: '{if($3%2!=0) {print&n…

    Linux干貨 2016-09-25
  • linux下繪圖工具rrdtool

    一、前言       為了做云緩存平臺的技術儲備,從零開始學習了rrdtool,rrdtool非常強大,剛接觸會有摸不著邊的感覺,尤其是一堆概念性的東西。學習的切入點便是這些概念,一一理解后你才能品嘗到rrdtool的清香,首先要感謝ailms整理的“RRDtool簡體中文教程 v1.01”,通俗易…

    Linux干貨 2015-03-27
  • N24_輝 學習宣言

    我志愿加入馬幫的大家庭。 在此,我堅信有志者事竟成,同時,機會總是留給有準備的人的。 既來之,則安之。我的目標是能在規定的時間內結業,正如馬哥所說:完成比完美更重要! 無論如何,也要完成!fighting?。?!

    Linux干貨 2016-10-24
  • Homework Week-1 Linux基本

    1、描述計算機的組成及其功能。 計算機由硬件和軟件組成;硬件主要分為五部分:控制器,運算器、存儲器、輸入和輸出設備。軟件分為系統軟件和應用軟件。 控制器(Control):是整個計算機的中樞神經,其功能是對程序規定的控制信息進行解釋,根據其要求進行控制,調度程序、數據、地址,協調計算機各部分工作及內存與外設的訪問等。 運算器(Datapath):運算器的功能…

    Linux干貨 2016-08-15
  • CMDB內功心法,助我登上運維之巔

    很多70、80后甚至90后都在金庸、古龍、梁羽生先生等武林大家熏陶下成長的,這么多年過去了,我的武俠夢依然不曾散去。曾幾何,夢想有一天練就一身絕學,摟著小師妹花前月下,仗劍走天涯,快意人生??擅看蔚暮ㄋ缐舳急话嘀魅未髸遄咏o抽醒,在他們的鞭策之下,渾渾噩噩的成了一位IT騷年。我們都知道武功分為內功和招式,內功是氣,而招式是形,以氣御形。內功深厚,會讓你的招…

    系統運維 2017-01-09
  • 文件的權限管理

    提問:可執行文件的標準格式是什么?     Linux下面,目標文件、共享對象文件、可執行文件都是使用ELF文件格式來存儲的。程序經過編譯之后會輸出目標文件,然后經過鏈接可以產生可執行文件或者共享對象文件。Linux下面使用的ELF文件和Windows操作系統使用的PE文件都是從Unix系統的COFF文件格式演化來的?!?/p>

    Linux干貨 2016-11-23

評論列表(1條)

  • stanley
    stanley 2015-11-18 11:10

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

欧美性久久久久