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

A Za, A Za, Fighting...

堅(jiān)信:勤能補(bǔ)拙

2011知識(shí)點(diǎn) - HTTP協(xié)議

HTTP protocol

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

HTTP protocol

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

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

【request】

一個(gè)request通常包含如下內(nèi)容:

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

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

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

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

一般HTTP Server需要實(shí)現(xiàn)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之后會(huì)斷開連接,如設(shè)置為Keep-Alive,則該連接可以多次使用
    Cookie: username=my-username; password=my-password; //指定client端攜帶的cookies
    Content-Length: 348         //數(shù)據(jù)包內(nèi)容的長(zhǎng)度(之后message body部分)
    Content-Type: application/x-www-form-urlencoded //數(shù)據(jù)報(bào)內(nèi)容的類型

【response】

一個(gè)response通常包含如下內(nèi)容:

    response line
    header fields (key-value pairs)
    empty line
    message body
  • 每行必須使用\r\n結(jié)尾;
  • reponse line的部分包含status code和status reason phrase,如HTTP/1.1 200 OKHTTP/1.1 404 Not Found
  • 空行部分不能包含任何空格字符;
  • message body部分即獲取的URI的資源的內(nèi)容,如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部分內(nèi)容長(zhǎng)度
    Content-Type:  text/html;charset=gb2312     //reponse body部分的類型和編碼
    Cache-Control: max-age=3600                 //指定client可以cache
    Content-Encoding: gzip                      //指定response內(nèi)容是壓縮的
    Set-Cookie: userId=2; username=min;         //在client端種下cookies

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

【HTTP request和response實(shí)例】

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

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是無狀態(tài)的協(xié)議,server端不保留client端的任何狀態(tài)信息,因此要實(shí)現(xiàn)在多次連接下能夠獲取之前的狀態(tài),可以通過cookies(client端)或session(server端)的方法。

【HTTP協(xié)議的應(yīng)用】

綜上,HTTP協(xié)議即是WWW互聯(lián)網(wǎng)基于TCP socket定義的一組通訊規(guī)范,使用該協(xié)議即可實(shí)現(xiàn)http client和http server的通信。它的優(yōu)點(diǎn)就是簡(jiǎn)單,最常用,大部分語言都支持client端實(shí)現(xiàn)

實(shí)際中借助libevent庫可輕松實(shí)現(xiàn)高并發(fā)高性能的HTTP server,將自己的應(yīng)用封裝一個(gè)HTTP接口,方便各種客戶端進(jìn)行數(shù)據(jù)通信。

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

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

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

導(dǎo)航

<2010年8月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
2930311234

統(tǒng)計(jì)

常用鏈接

留言簿(1)

隨筆分類

隨筆檔案

搜索

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久久7777| 欧美精品免费观看二区| 久久久精品动漫| 欧美一区二区三区另类| 午夜精品www| 欧美一区二区日韩| 欧美伊久线香蕉线新在线| 久久高清免费观看| 久热精品在线视频| 国产三区精品| 亚洲第一黄色网| 一卡二卡3卡四卡高清精品视频| 亚洲校园激情| 久久久五月婷婷| 日韩午夜黄色| 久久亚洲综合色| 国产精品福利网| 亚洲国产精品久久久| 午夜精品久久久久久99热| 欧美高清不卡| 欧美亚洲免费| 久久精选视频| 亚洲成人资源| 亚洲国产专区| 欧美诱惑福利视频| 欧美日韩ab| 国产一区二区三区四区| 亚洲国产毛片完整版| 欧美一级成年大片在线观看| 久久久久久穴| 亚洲视频福利| 免费在线亚洲欧美| 国产喷白浆一区二区三区| 亚洲精品视频免费| 亚洲欧美激情一区| 亚洲国产精品99久久久久久久久| av成人福利| 久热精品视频在线观看一区| 国产精品欧美经典| 亚洲一区二区三区高清| 久久国产精品久久国产精品| 欧美成人免费全部| 午夜精品久久| 欧美国产日韩xxxxx| 国产精品视频一区二区高潮| 狠狠久久亚洲欧美专区| 91久久国产综合久久91精品网站| 香蕉av福利精品导航| 亚洲大胆av| 午夜精品国产| 国产女主播一区| 欧美亚洲网站| 夜夜嗨av一区二区三区免费区| 蜜桃av久久久亚洲精品| 国产综合色在线视频区| 欧美在线免费观看视频| 亚洲视频免费在线观看| 欧美日韩亚洲另类| 亚洲精品免费网站| 男人插女人欧美| 久久se精品一区二区| 国产日产亚洲精品| 性欧美xxxx视频在线观看| 亚洲天天影视| 国产精品一区二区在线观看网站| 亚洲一区国产一区| 亚洲一区欧美激情| 午夜天堂精品久久久久| 国产精品国产精品国产专区不蜜| 亚洲图色在线| 一区二区三区**美女毛片| 欧美激情精品久久久| 日韩一级在线| 一本久道久久综合中文字幕| 欧美日韩午夜剧场| 午夜精品一区二区三区在线播放 | 老司机一区二区三区| 久久国产免费看| 亚洲国产日韩在线一区模特| 亚洲国产精品成人va在线观看| 欧美va天堂| 一区二区三区四区五区精品| 欧美99久久| 噜噜噜噜噜久久久久久91 | 久久国产99| 亚洲精品少妇30p| 中文高清一区| 国内精品久久久久影院色| 欧美.www| 国产精品家教| 欧美激情偷拍| 国产精品最新自拍| 欧美国产成人在线| 国产精品成人在线观看| 美女露胸一区二区三区| 欧美日韩八区| 久久美女性网| 免费欧美高清视频| 欧美亚洲日本网站| 欧美激情导航| 久久免费视频这里只有精品| 欧美精品在线免费观看| 久久五月天婷婷| 国产精品视频一| 亚洲精品日韩在线| 精品91免费| 一区二区三区日韩| 亚洲黄网站在线观看| 亚洲午夜一区二区三区| 亚洲精品日韩激情在线电影| 欧美一区在线视频| 亚洲欧美一区二区原创| 欧美精品久久99| 欧美韩日视频| 1024亚洲| 久久久久国产精品一区二区| 久久国产高清| 国产精品一区二区在线观看| 99国产一区| 日韩一区二区免费高清| 久久人人97超碰精品888| 欧美一级精品大片| 国产精品va在线播放| 亚洲国产精品福利| 伊人春色精品| 久久久久久一区二区| 久久久久久久精| 国产美女扒开尿口久久久| 99re成人精品视频| 亚洲午夜精品网| 久久精彩视频| 亚洲一区高清| 欧美亚州一区二区三区| 亚洲精选国产| 日韩视频免费观看高清在线视频 | 午夜一区不卡| 国产精品毛片a∨一区二区三区| 91久久国产精品91久久性色| 91久久精品一区| 免费中文日韩| 亚洲精品视频免费| 亚洲午夜免费视频| 欧美午夜片在线观看| 伊人久久噜噜噜躁狠狠躁| 亚洲欧美在线另类| 久久视频这里只有精品| 依依成人综合视频| 久久精品国产一区二区三区免费看 | 亚洲高清久久| 老鸭窝毛片一区二区三区| 蜜臀99久久精品久久久久久软件| 韩国av一区| 欧美sm视频| 99视频在线观看一区三区| 亚洲一区二区三区在线播放| 欧美色一级片| 亚洲欧美日韩专区| 久久精品国产一区二区三区免费看| 国产亚洲精品久久久久久| 久久久久久网址| 模特精品在线| 日韩午夜在线观看视频| 国产精品一区二区久久国产| 久久久99久久精品女同性| 亚洲国产专区| 午夜久久久久久| 国产夜色精品一区二区av| 免费视频亚洲| 亚洲作爱视频| 欧美h视频在线| 一二三区精品| 国产日韩欧美在线播放| 欧美成人性网| 欧美一区二区精品| 亚洲免费av片| 免费观看成人| 校园激情久久| 日韩视频在线一区| 国产乱码精品1区2区3区| 免费成人高清| 久久精品国产69国产精品亚洲| 亚洲青涩在线| 蜜臀91精品一区二区三区| 午夜免费日韩视频| 99re这里只有精品6| 国内外成人免费视频| 欧美日韩国产va另类| 久久久精品动漫| 亚洲伊人网站| 亚洲理论在线观看| 蜜桃av噜噜一区二区三区| 午夜精品久久久久久99热| 99精品热视频只有精品10| 国内揄拍国内精品久久| 国产精品青草久久| 欧美+日本+国产+在线a∨观看| 在线天堂一区av电影| 亚洲免费大片| 国产精品久久久久免费a∨大胸| 久久精品免费播放|