zoukankan      html  css  js  c++  java
  • URL的语法及HTTP报文

    大多数URL方案的URL语法都建立在这个由9部分构成的通用格式上:

    scheme://user:password@host:port/path;params?query#frag

    方案:http或者https

    主机与端口:http://www.nihao.com:80/index.html

    用户名和密码:ftp://joe:123@ftp.edu/pub    http://joe:123@www.nihao.com

    路径:http://www.nihao.com/image/1.jpg

    这个URL中的路径为/image/1.jpg, 路径是服务器定位资源时所需的信息,可以用字符“/”将

    HTTPURL的路径组件划分成一些路径段(path segment),每个路径段都有自己的参数(param)

    组件

    参数:很多时候负责解析URL的应用程序需要这些协议参数来访问资源,否则另一端的服务器可

    能就不会为请求提供服务,或者更糟糕提供错误服务,为了正确与服务器进行交互,就得向服务

    器上的应用程序提供它们所需的输入参数 比如:

    ftp://prep.edu/pub/gnu;type=d

    http://www.joes.com/hammers;sale=false/index.html;graphics=true

    HTTP URL的路径组件可以分为若干路径段,每段都可以有自己的参数

    查询字符串:很多资源,比如数据库服务,都可以通过提问题或查询来缩小所请求资源类型范围

    假设joe的五金店在数据库中维护着一个未售货物的清单,并可以通过清单进行查询,以判断产品

    是否有货,就可以用下面的URL来查询web数据库网关,看看编号为12731的条目是否有货:

    http://www.joes.com/inventory-check.cgi?item=12731

    ?右边的内容被称为查询(query)组件,URL的查询组件和标识网关资源的URL路径组件一起被发

    送给网关资源,基本上可以将网关当作访问其他应用程序的访问点

    查询可以有多个:http://www.joes.com/inventory-check.cgi?item=12731&color=blue

    片段:有些资源类型比如HTML除了资源级外,还可以做进一步的划分,比如对一个带有章节的

    大型文档来说,为了引用部分资源或资源的一个片段,URL支持使用片段(frag)组件来表示一个

    资源内部的片段,比如URL可以指向HTML文档中一个特定的图片或小节

    片段挂在URL的右手边,最前面有一个字符“#”

    HTTP服务器通常只处理整个对象,而不是对象的片段,客户端不能将片段传送给服务器,浏览器

    从服务器获得了整个资源之后,会根据片段来显示你感兴趣的那部分资源

    HTTP报文由三个部分组成:对报文进行描述的起始行(start line) ,包含属性的首部(header)

    块,以及可选的包含数据的主体(body)部分

    报文的主体(或者就称为主体)是一个可选的数据块,可以包含文本或二进制数据,也可以为空

    上图Content-Type说明主体是纯文本文档, Content-Length说明主体有多大19个字节

    所有HTTP报文都可以分为两类:请求报文(request message)和响应报文(response message)

    请求报文的格式:

        <method> <request-URL> <version>

        <headers>

        <entity-body>

    响应报文的格式:

        <version> <status> <reason-phrase>

        <headers>

        <entity-body>

  • 相关阅读:
    HDU 1813 Escape from Tetris
    BZOJ 2276 Temperature
    BZOJ 4499 线性函数
    BZOJ 3131 淘金
    HDU 5738 Eureka
    POJ 2409 Let it Bead
    POJ 1286 Necklace of Beads
    POJ 1696 Space Ant
    Fox And Jumping
    Recover the String
  • 原文地址:https://www.cnblogs.com/linuxboke/p/5574092.html
Copyright © 2011-2022 走看看