大多数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>

URL的语法及HTTP报文的更多相关文章

  1. JS window对象 返回前一个浏览的页面 back()方法,加载 history 列表中的前一个 URL。 语法: window.history.back();

    返回前一个浏览的页面 back()方法,加载 history 列表中的前一个 URL. 语法: window.history.back(); 比如,返回前一个浏览的页面,代码如下: window.hi ...

  2. JS window对象 Location对象 location用于获取或设置窗体的URL,并且可以用于解析URL。 语法: location.[属性|方法]

    Location对象 location用于获取或设置窗体的URL,并且可以用于解析URL. 语法: location.[属性|方法] location对象属性图示: location 对象属性: lo ...

  3. java报表工具FineReport的JS编辑框和URL地址栏语法简介

    JS编辑框: 1.FineReport的js. 作为一款BS产品,browser端的JavaScript是必不可少的. FineReport中的js是已经调用了finereport.js的. 大家知道 ...

  4. web报表工具FineReport的JS编辑框和URL地址栏语法简介

    JS编辑框: 1.FineReport的js. 作为一款BS产品,browser端的JavaScript是必不可少的. FineReport中的js是已经调用了finereport.js的. 大家知道 ...

  5. URL基本语法

    1.URL全称为Uniform Resource Locator,即统一资源定位符.对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址.互联网上的每个文件都有一个唯一 ...

  6. url语法

    URL的主要部分 URL通常被写成如下形式: <方案>:<方案描述部分> 一个URL包含了它使用的方案名称(<方案>), 其后紧跟一个冒号,然后是一个字符串 (&l ...

  7. HTTP报文语法/HTTP组成

        一.HTTP报文分类:请求报文和响应报文 请求报文会向Web服务器请求一个动作,响应报文会将请求的结果返回给客户端 请求报文格式: <method>  <request-UR ...

  8. [httpserver]如何解析HTTP请求报文

    这个http server的实现源代码我放在了我的github上,有兴趣的话可以点击查看哦. 在上一篇文章中,讲述了如何编写一个最简单的server,但该程序只是接受到请求之后马上返回响应,实在不能更 ...

  9. HTTP权威指南笔记-2.URL与资源

    2.1 URI与URL.URN URL是浏览器寻找信息时所需的具体位置.URl是人们对HTTP和其他协议的常用访问点:浏览器指向一个URL,浏览器就会发送适当的协议报文向服务器获取内容. URI是一类 ...

随机推荐

  1. "自定义事件"的优点在哪里?

    事实上我们可以通过bind绑定一个自定义事件,然后再通过trigger来触发这个事件.例如给element绑定一个hello事件,再通过trigger来触发这个事件: //给element绑定hell ...

  2. DELPHI下的SOCK编程(转)

    DELPHI下的SOCK编程      本文是写给公司新来的程序员的,算是一点培训的教材.本文不会涉及太多的编程细节,只是简单讲解在DELPHI下进行Winsock编程最好了解的知识. 题外话:我认为 ...

  3. python学习笔记——异常

    转自 http://www.cnblogs.com/rubylouvre/archive/2011/06/22/2086644.html Python内建异常体系结构 BaseException +- ...

  4. linux双机GFS的配置

    1.两台服务器安装如下包: apr-1.2.7-11.el5_3.1.x86_64.rpmapr-util-1.2.7-11.el5.x86_64.rpmcman-2.0.115-34.el5.x86 ...

  5. 第二章 I - The 3n + 1 problem(2.4.2)

    这是一道很坑爹的题,一定注意输入的两个数的大小,并且不能简单的交换,因为在最后的输出的时候还需要将原来的数按照原来的顺序和大小,这就是为什么还得开辟两个值得原因 Description Problem ...

  6. AngularJs 入门系列-1 使用 AngularJs 搭建页面基本框架

    每当看到前端程序员在脚本.样式.表单处理逻辑中苦苦挣扎的时候,我就在想,为什么不用Angular Js 呢? Angular Js 支持页面前端的 MVC 模式开发,在 Angular JS 的支持下 ...

  7. Javascript与Flex AS3的交互

    网上看了很多的关于JS和AS的教程,写的都玄乎乎,让一帮新人摸不着头脑. 鉴于此,打算自己写一个简化的教程. 重点: ExternalInterface.addCallback("js_fu ...

  8. Xcode清缓存

    前往-->按住option键进入资源库-->Developer-->Xcode-->DerivedData   删除里面的文件就行了

  9. Weblogic发布小问题——The root element weblogic-web-app is missing in the descriptor file

    前几天发布项目遇到这样一个小错误,在此记录一下,以便加深一点印象,下次好解决类似的问题! (对应的应用服务器是WebLogic Server 版本: 10.3.6.0,应用是以文件夹的形式发在服务器的 ...

  10. JAR包

    1,      使用JAR文件    jar文件的全称是Java Archive File,意思就是Java档案文件,通常jar文件是一种压缩文件,与常见的ZIP压缩文件兼容,通常也被称为jar包,j ...