青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

A Za, A Za, Fighting...

堅信:勤能補拙

2011知識點 - HTTP協議

HTTP protocol

© Min的技術分享 – 54min.com (RSS訂閱) | 原文鏈接:http://54min.com/post/the-http-protocol.html

HTTP protocol

HTTP是應用層協議(傳輸層采用TCP因此是面向連接的),是WWW所使用的協議。當前使用的是HTTP/1.1(HTTP/1.0對每個request/response使用獨立的connection,每次請求都需要重新建立到server的HTTP連接;HTTP/1.1引入了HTTP persistent connection,重用一個connection多次(通過在client和server的HTTP header中添加Connection: Keep-Alive),參考)。

HTTP-base的C/S通信: client(常見的為瀏覽器)發出request, server(常見的為http server)返回針對該request的response。(通常采用80端口)。

【request】

一個request通常包含如下內容:

    request line
    header fields (key-value pairs)
    empty line
    optional message body
  • 每行必須使用\r\n結尾;
  • request line的部分包含請求文件的路徑部分,例如GET /index.html HTTP/1.1;
  • request header fields部分只有Host是不可省略的,其他都是可選的;
  • 空行部分不能包含任何空格字符;
  • message body部分通常用于放置POST方法的數據,是可選的

request支持的方法由如下幾種(request line的部分指定):

    HEAD    //和GET方法類似,但是只獲取response的HTTP header
    GET     //獲取指定路徑的內容(reponse包含header和message body)
    POST    //將數據POST到server
    PUT     //uploads a representation of the specified resource
    DELETE  //delete the specified resource

    TRACE   //返回server得到的request,以了解在中間server進行了哪些修改
    OPTIONS
    CONNECT
    PATCH

一般HTTP Server需要實現GET,HEAD和OPTIONS方法。

request的HTTP header fields參考。常見的:

    Host: www.google.com        //server的domain name,不能省略
    Accpet: text/plain          //接受的Content-Type
    Accept-Charset: utf-8       //接受的character set
    Accept-Language: en-US      //接受的語言
    User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
    Connection: Close           //客戶端在獲取response之后會斷開連接,如設置為Keep-Alive,則該連接可以多次使用
    Cookie: username=my-username; password=my-password; //指定client端攜帶的cookies
    Content-Length: 348         //數據包內容的長度(之后message body部分)
    Content-Type: application/x-www-form-urlencoded //數據報內容的類型

【response】

一個response通常包含如下內容:

    response line
    header fields (key-value pairs)
    empty line
    message body
  • 每行必須使用\r\n結尾;
  • reponse line的部分包含status code和status reason phrase,如HTTP/1.1 200 OKHTTP/1.1 404 Not Found;
  • 空行部分不能包含任何空格字符;
  • message body部分即獲取的URI的資源的內容,如HTML頁面代碼

response的status code,比較常見到的:

200 OK

302 Found   //用于redirection

400 Bad Request //the request has bad syntax
403 Forbidden   //the server is refusing to respond to it
404 Not Found   //could not be found

502 Bad Gateway //the server was acting as proxy and received an invalid response from the upstream server(一般為app server),如nginx + PHP-FPM

更多參考:http://en.wikipedia.org/wiki/List_of_HTTP_status_codes

response的HTTP header fields參考。常見的:

    Server: nginx/0.7.67                        //http server信息
    Connection: close                           //或Keep-Alive
    Content-Length: 35                          //response body部分內容長度
    Content-Type:  text/html;charset=gb2312     //reponse body部分的類型和編碼
    Cache-Control: max-age=3600                 //指定client可以cache
    Content-Encoding: gzip                      //指定response內容是壓縮的
    Set-Cookie: userId=2; username=min;         //在client端種下cookies

更多的Http headers fields: http://en.wikipedia.org/wiki/List_of_HTTP_header_fields

【HTTP request和response實例】

如下介紹HEADGETPOST共3種方法的HTTP request/response實例。

HEAD:

HEADGET類似但是只獲取response的response line和header fields部分,不包括message body

  • request:

    HEAD /request.php?q=keywords&status=2 HTTP/1.1
    HOST: example.com
    User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
    
  • response

    HTTP/1.1 200 OK
    Server  nginx/0.7.67
    Date    Mon, 18 Jul 2010 02:51:09 GMT
    Content-Type    text/html
    Transfer-Encoding   chunked
    Connection  keep-alive
    X-Powered-By    PHP/5.3.6-12
    Content-Encoding    gzip
    

GET:

  • request:

    GET /index.php?q=keywords HTTP/1.1
    Host    test.54min.com
    User-Agent  Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
    Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Connection  keep-alive
    
  • response:

    HTTP/1.1 200 OK
    Server  nginx/0.7.67
    Date    Mon, 18 Jul 2010 02:54:02 GMT
    Content-Type    text/html
    Last-Modified   Fri, 24 Jun 2010 07:39:28 GMT
    Transfer-Encoding   chunked
    Connection  keep-alive
    Content-Encoding    gzip
    
    <html>
    this is c 
    sfsdfsdfs
    </html>
    

POST:

POST方法的request需要指定Content-LengthContent-Type

  • request:

    POST /login.php HTTP/1.1
    Host: www.example.com
    User-Agent  Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
    Content-Length: 27
    Content-Type: application/x-www-form-urlencoded
    
    userid=joe&password=guessme
    
  • response:

    HTTP/1.1 200 OK
    Server  nginx/0.7.67
    Date    Mon, 18 Jul 2010 02:54:02 GMT
    Content-Type    text/html
    Last-Modified   Fri, 24 Jun 2010 07:39:28 GMT
    Transfer-Encoding   chunked
    Connection  keep-alive
    Content-Encoding    gzip
    
    <html>
    this is c 
    sfsdfsdfs
    </html>
    

參考:http://developers.sun.com/mobility/midp/ttips/HTTPPost/

【HTTP是statless protocol】

HTTP是無狀態的協議,server端不保留client端的任何狀態信息,因此要實現在多次連接下能夠獲取之前的狀態,可以通過cookies(client端)或session(server端)的方法。

【HTTP協議的應用】

綜上,HTTP協議即是WWW互聯網基于TCP socket定義的一組通訊規范,使用該協議即可實現http client和http server的通信。它的優點就是簡單,最常用,大部分語言都支持client端實現。

實際中借助libevent庫可輕松實現高并發高性能的HTTP server,將自己的應用封裝一個HTTP接口,方便各種客戶端進行數據通信。

【推薦的HTTP(header和raw message)分析工具】

參考:http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol

posted on 2011-09-04 22:19 simplyzhao 閱讀(430) 評論(0)  編輯 收藏 引用 所屬分類: R_找工復習2011

導航

<2011年9月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

統計

常用鏈接

留言簿(1)

隨筆分類

隨筆檔案

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            老司机一区二区三区| 欧美精品激情blacked18| 91久久精品国产91久久性色| 亚洲一区久久| 夜夜精品视频一区二区| 久久久精品欧美丰满| 香蕉国产精品偷在线观看不卡| 久热re这里精品视频在线6| 亚洲欧洲99久久| 欧美日韩高清在线一区| 亚洲国产另类 国产精品国产免费| 国产欧美精品一区二区色综合| 亚洲人成在线播放| 亚洲激情二区| 免费看亚洲片| 牛牛国产精品| 亚洲国产成人精品久久| 久久精品免费| 免费观看成人| 在线观看日韩av| 久久漫画官网| 欧美激情精品久久久久久免费印度| 国产一区二区三区奇米久涩| 亚洲欧美日韩久久精品| 香蕉精品999视频一区二区| 国产精品免费网站| 亚洲美女在线观看| 亚洲专区一区| 国产精品亚洲аv天堂网 | 久久成人国产| 国产在线观看一区| 欧美在线资源| 亚洲成在人线av| 99国产精品国产精品久久| 亚洲日韩第九十九页| 欧美激情视频在线播放| 亚洲破处大片| 亚洲欧美国产高清va在线播| 国产精品一区2区| 性欧美videos另类喷潮| 另类亚洲自拍| 亚洲三级免费| 国产精品高潮呻吟视频| 午夜久久一区| 免费久久99精品国产自在现线| 亚洲欧洲一区二区三区久久| 欧美久久在线| 午夜精品久久久久久久99樱桃| 麻豆精品国产91久久久久久| 亚洲人成在线观看| 欧美性猛交99久久久久99按摩| 性久久久久久| 亚洲欧洲日韩女同| 欧美一区二区三区视频在线观看| 狠色狠色综合久久| 欧美久久影院| 欧美中在线观看| 亚洲三级影院| 久久国产免费| 99成人精品| 国内在线观看一区二区三区| 欧美精品在线一区二区| 午夜激情久久久| 亚洲日本电影| 久久婷婷人人澡人人喊人人爽| 亚洲精品美女久久久久| 国产欧美一区二区精品仙草咪| 欧美成年视频| 久久成人一区| 亚洲一区二区三区久久| 亚洲第一久久影院| 久久久天天操| 亚洲少妇中出一区| 亚洲高清免费视频| 国产欧美日韩免费看aⅴ视频| 欧美国产日韩一区| 久久青青草综合| 欧美一级淫片播放口| 亚洲三级国产| 欧美成人情趣视频| 久久免费高清| 欧美在线观看视频一区二区| 亚洲毛片网站| 亚洲国产精品www| 国外成人在线| 国产精品一卡二卡| 国产精品高潮视频| 欧美日韩精品免费观看视一区二区| 久久裸体视频| 久久久99精品免费观看不卡| 亚洲综合大片69999| 一区二区三区 在线观看视频| 亚洲国产福利在线| 蜜臀av性久久久久蜜臀aⅴ| 欧美一区视频在线| 午夜精品久久久久久99热| 99精品国产在热久久下载| 亚洲激情亚洲| 亚洲福利精品| 亚洲国产老妈| 亚洲日本中文字幕免费在线不卡| 在线不卡中文字幕| 尤物在线观看一区| 一区二区自拍| 亚洲福利视频一区二区| 在线观看视频亚洲| 亚洲电影下载| 亚洲激情综合| 亚洲欧洲一区二区三区| 亚洲精品日本| 一区二区三区视频在线播放| av成人福利| 亚洲欧美国产毛片在线| 午夜精品免费| 久久久99免费视频| 玖玖玖国产精品| 亚洲第一色中文字幕| 亚洲日本中文字幕| 一区二区三区成人精品| 国产精品99久久久久久宅男| 亚洲深爱激情| 性欧美暴力猛交69hd| 久久久国产视频91| 欧美成人精品影院| 欧美视频一区二区在线观看| 国产精品久久毛片a| 国产日韩欧美日韩| 亚洲国产精品电影在线观看| 亚洲美女少妇无套啪啪呻吟| 亚洲永久免费观看| 久久在线免费观看| 亚洲电影激情视频网站| 亚洲乱码久久| 亚洲欧美日韩专区| 免费av成人在线| 国产精品porn| 一区在线观看| 中文国产成人精品久久一| 午夜亚洲精品| 亚洲第一精品夜夜躁人人爽| 宅男噜噜噜66一区二区| 久久精品在线免费观看| 欧美日韩国产不卡| 国产亚洲精品一区二555| 亚洲国产精品视频一区| 午夜电影亚洲| 欧美国内亚洲| 亚洲中午字幕| 欧美激情欧美狂野欧美精品| 国产麻豆91精品| 亚洲乱码精品一二三四区日韩在线 | 欧美在线免费一级片| 嫩草影视亚洲| 亚洲在线网站| 欧美黄色片免费观看| 国产精品中文字幕欧美| 亚洲精品亚洲人成人网| 久久婷婷成人综合色| 99在线精品观看| 裸体一区二区三区| 国产欧美日韩一区二区三区在线观看| 亚洲韩国日本中文字幕| 欧美一区二区视频97| 亚洲国产日韩在线| 久久久av网站| 国产午夜精品久久久久久免费视| 亚洲免费播放| 欧美 日韩 国产在线| 亚洲欧美自拍偷拍| 欧美三级第一页| 亚洲精品一区中文| 欧美成人精品激情在线观看| 欧美一区二区高清| 国产精品国产三级国产普通话99| 亚洲精品综合精品自拍| 欧美jizz19性欧美| 久久久久久9999| 国产综合久久| 欧美自拍偷拍午夜视频| 亚洲一区亚洲| 国产精品久久久对白| 在线亚洲一区观看| 日韩午夜黄色| 欧美日韩情趣电影| 日韩午夜精品视频| 亚洲欧洲另类| 欧美精品久久久久久| 日韩亚洲欧美一区二区三区| 亚洲激情视频网| 欧美日本不卡高清| 99riav国产精品| 91久久极品少妇xxxxⅹ软件| 欧美激情久久久久久| 亚洲精品专区| 亚洲最新在线视频| 国产精品久久久久久久久| 亚洲欧美制服另类日韩| 亚洲欧洲av一区二区三区久久| 国产一区二区视频在线观看| 久久黄色网页|