#URL语法
#HTTP权威指南 28页
- URL提供了一种定位因特网上任意资源的手段,但是这些资源是通过不同的方案(http、ftp、smtp)来访问的。
- URL通用格式:
- <scheme>://<user>:<password>@<host>:<port>/<path>:<params>?<query>#<frag>
- 最重要的3个部分:
- scheme:方案,访问服务器以获取资源时要使用哪种协议,如:http 【最重要】
- host:主机,资源宿主服务器的主机名,ip地址 【最重要】
- path:路径,服务端上的资源本地名,由斜杠分割开来,如:index.html 【最重要】
- user:password,访问资源时需要的用户名和密码,中间冒号不能丢
- port:端口,默认端口为80
- params:参数,参数为名/值对(如:name='xiaodeng'),url可以包含多个参数字段,他们之间以及与路径的其余部分之间用‘&’分隔。
- query:查询,用字符‘?’将其与url的其他部分分割开来
- 方案,用冒号分割开来,如:http://www.163.com,http就是方案,冒号后面接着主机名
- 主机名和端口
- 要想找到因特网上的资源,应用程序要知道是哪台机器装载了资源,以及字啊那台机器的什么地方可以找到。
- 主机:标识了因特网上能访问资源的宿主。主机名可以是ip地址,也可以是www.163.com
- 端口:标识了服务器正在监听的网络端口,对下层使用了tcp协议的http来讲,默认端口为80
- 用户名和密码
- 用户和密码组件,很多服务器要求用户输入用户名和密码才能允许访问数据。ftp服务器就是常见的案例。
- 案例
- ftp://ftp.prep.ai.mit.edu/pub/gnu
- ftp://anonymous@ftp.prep.ai.mit.edu/pub/gnu
- http://joe:joespasswd@www.joes-hardware.com/sales_info.txt
- 路径
- url路径组件说明了资源位于服务端的什么位置,什么地方。通常很想一个分级的文件系统路径。
- 案例:http://www.joes-hardware.com:80/seasonal/index.html
- 如上路径为:/seasonal/index.html
- 参数
- 参数组件就是url中名值对列表,每个参数之间用&分割。
- 案例:http://news.sina.com.cn/c/nd/2015-10-06/doc-ifximrxn8226497.shtml?cre=newspagepc&mod=f&loc=7&r=a&rfunc=2
- 查询字符串
- 字符?问号被称之为查询组件
- 按照常规,很多网关都希望查询字段以一系列的名/值对形式出现,名值之间用字符&分割。
- 片段(#)
- 为了引用部分资源或资源的一个片段,url支持使用片段组件来表示一个资源内部的片段
- 如:url可以指向html文档中的特定的图片或小节。
- 案例:http://www.joes-hardware.com/tools.html#drills