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>
URL的语法及HTTP报文的更多相关文章
- JS window对象 返回前一个浏览的页面 back()方法,加载 history 列表中的前一个 URL。 语法: window.history.back();
返回前一个浏览的页面 back()方法,加载 history 列表中的前一个 URL. 语法: window.history.back(); 比如,返回前一个浏览的页面,代码如下: window.hi ...
- JS window对象 Location对象 location用于获取或设置窗体的URL,并且可以用于解析URL。 语法: location.[属性|方法]
Location对象 location用于获取或设置窗体的URL,并且可以用于解析URL. 语法: location.[属性|方法] location对象属性图示: location 对象属性: lo ...
- java报表工具FineReport的JS编辑框和URL地址栏语法简介
JS编辑框: 1.FineReport的js. 作为一款BS产品,browser端的JavaScript是必不可少的. FineReport中的js是已经调用了finereport.js的. 大家知道 ...
- web报表工具FineReport的JS编辑框和URL地址栏语法简介
JS编辑框: 1.FineReport的js. 作为一款BS产品,browser端的JavaScript是必不可少的. FineReport中的js是已经调用了finereport.js的. 大家知道 ...
- URL基本语法
1.URL全称为Uniform Resource Locator,即统一资源定位符.对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址.互联网上的每个文件都有一个唯一 ...
- url语法
URL的主要部分 URL通常被写成如下形式: <方案>:<方案描述部分> 一个URL包含了它使用的方案名称(<方案>), 其后紧跟一个冒号,然后是一个字符串 (&l ...
- HTTP报文语法/HTTP组成
一.HTTP报文分类:请求报文和响应报文 请求报文会向Web服务器请求一个动作,响应报文会将请求的结果返回给客户端 请求报文格式: <method> <request-UR ...
- [httpserver]如何解析HTTP请求报文
这个http server的实现源代码我放在了我的github上,有兴趣的话可以点击查看哦. 在上一篇文章中,讲述了如何编写一个最简单的server,但该程序只是接受到请求之后马上返回响应,实在不能更 ...
- HTTP权威指南笔记-2.URL与资源
2.1 URI与URL.URN URL是浏览器寻找信息时所需的具体位置.URl是人们对HTTP和其他协议的常用访问点:浏览器指向一个URL,浏览器就会发送适当的协议报文向服务器获取内容. URI是一类 ...
随机推荐
- 朗逸2011款 1.4t 清除保养告警灯
朗逸2011款 1.4t 清除保养告警灯 Posted on 2015-03-01 21:06 编辑 仪表盘上有两个按钮 按住右边set键,钥匙旋转到通电状态,保持2s. 放掉set,按左边的切换按钮 ...
- ProGuard
ProGuard的作用: 1.创建紧凑的代码文档是为了更快的网络传输,快速装载和更小的内存占用. 2.创建的程序和程序库很难使用反向工程. 3.所以它能删除来自源文件中的没有调用的代码 4.充分利用 ...
- 共享池之八:软解析、硬解析、软软解析 详解一条SQL在library cache中解析涉及的锁
先来张大图: 结合上图来说明一下解析的各个步骤涉及的锁. 软解析.硬解析.软软解析区别的简单说明: 为了将用户写的sql文本转化为oracle认识的且可执行的语句,这个过程就叫做解析过程. 解析分为硬 ...
- SQL Server参数化查询中应用Like
一般情况下是SQL语句: Select * From Users Where UserName Like 'Lin%' Select * From Users Where UserName Like ...
- OC基础(24)
NSMutableArray基本概念 NSDictionary基本概念 NSMutableDictionary基本概念 常见的结构体 *:first-child { margin-top: 0 !im ...
- SparkSQL使用之Thrift JDBC server
Thrift JDBC Server描述 Thrift JDBC Server使用的是HIVE0.12的HiveServer2实现.能够使用Spark或者hive0.12版本的beeline脚本与JD ...
- Oracle 启动状态解说
oracle 启动状态由nomount-mount-open 一. nomount状态下操作 08:09:49 idle> startup nomount; ORACLE instance st ...
- The Ninth Hunan Collegiate Programming Contest (2013) Problem C
Problem C Character Recognition? Write a program that recognizes characters. Don't worry, because yo ...
- telnet登录路由器启动服务的shell脚本
因为在测试中经常要telnet登录到路由器中去配置环境启动路由器,每次都输入一遍命令太麻烦了,想着写一个shell脚本实现自动登录.配置环境.启动服务的过程. 脚本实现是使用expect来实现的,所以 ...
- 关于 profile文件(转)
登录shell执行了两个特殊文件, 1个是:\etc\profile, 这个文件由系统管理员设置,通常做一些如检查是否有邮件,设置默认的创建文件的掩码,给某些表转到处变量赋值,已经任何管理员希望每当用 ...