• http协议


    http协议包含两个部分:请求和回应。请求就是URL+浏览器自身的一些信息。服务器接受这个请求后,发出回应,回应包含关于请求的信息和URL的地址里面包含的数据(如果有的话)。接下来由浏览器解读回应,显示页面。

    HTTP请求格式:

    <request-line>请求的类型,读取的资源,HTTP的版本

    <headers>服务器所需的附加信息

    <blank line>

    [<request-body>]

    HTTP请求例子:

        GET :tell the server to get the resource and send it back;

          GET的请求格式:

            GET / HTTP/1.1 ----第一个/,说明请求是对于域名的根目录;最后的部分说明使用HTTP版本1.1<request-line>

            HOST:www.wrox.com-----说明请求发送的目的地<headers>

    一二行加起来,说明请求是针对路径www.wrox.com/.Host Headerd 是HTTP1.1必须的,HTTP1.0不需要。如果路径是www.wrox.com/books,那么GET /books/  HTTP/1.1。发送参数时需要另外的信息。URL?name=value$name2=value2&..nameN=valueN,这个信息叫做query string,GET /books/?name=Professinal%20Ajax HTTP/1.1,"Professinal Ajax "为通过URL发送被编码,%20代替空格,这叫做URL编码。这种编码被用到HTTP的许多部分,(Javascript有函数处理URL编码和解码)数值对用&分开,服务器端技术会自动解码request body ,提供逻辑方法获取数值。当然由服务器端决定怎么处理这些数值。

            User-Agent:Mozilla/5.0(。。。)<headers>是你使用的浏览器定义的,每一次发送请求的时候都自动发送。

            Connection:Keep-Alive <headers>浏览器操作

                <blank line>

    POST的请求格式:

      POST / HTTP/1.1 

      HOST:www.wrox.com

      User-Agent:Mozilla/5.0(。。。)

      Content-Type:application/x-www-form-urlencoded<header>决定请求的request body是怎么样加密的。浏览器总是加密post data 作为application/x-www-form-urlencoded,这是一种MIME类型,对于简单的URL加密的类型。

      Content-Length:40<header>说明request body的字节长度,由简单的name-value对组成,name是Professinal Ajax ;publisher 是Wiley;这个name-value对和query string里面的name-value pair 是一样的。

      Connection:keep-Alive

      

      name=Professinal%20Ajax&publisher=Wiley

    HTTP回应:

    <status-line>

    <headers>

    <blank line>

    [<response-body>]

    HTTP回应例子:


    HTTP/1.1 200 OK-----包含状态信息通过状态码而不是请求信息,状态码200和信息OK

    Date:Sat, 31 Dec 2005 23:59:59 GMT

    Content-Type:text/html; charset=ISO-8859-1

    Content-Length:122

    <html><response body>

      <head>

        <title>Wrox Homepage</title>

      </head>

      <body>

        <!--body goes here-->

      </body>

    </html><response body>

    常用状态码:

    200(OK):成功找到资源。

    304(NOT MODIFIED):上次请求之后资源没有被修改,这个经常用于浏览器缓存机制。

    401(UNAUTHORIZED):客户端并没有被授权获得资源,通常,这会使浏览器会提问用户名和密码去登陆服务器。

    403(FORBIDDEN):客户端获取权限失败。这个通常发生在,你的登陆时的用户名或密码错误,在401之后。

    404(NOT FOUND):在访问的路径中资源不存在。

  • 相关阅读:
    湘湖的雪
    Lua 如何调用C打包的动态库
    自己制作一个USB自动挖矿器
    二十五块DIY 带屏幕可远程的温湿度传感器
    来看下,C# WebService WSDL自动生成代码,数组参数的BUG。。。ArrayOfString
    记一次非常规方法对接硬件设备(Grason Stadler GSI 61)
    京享值超8万的京东钻石用户告诉你套路是这样的
    C# 显示纯文本对齐封装(控制显示字体长度)
    [开源] C# 封装 银海医保的接口
    [开源]使用C# 对CPU卡基本操作封装
  • 原文地址:https://www.cnblogs.com/IanI/p/3876142.html
Copyright © 2020-2023  润新知