url的组成

举例以下:html

http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument浏览器

协议(Protocol) 

http://为协议名,标明了请求须要使用的协议,一般使用的是HTTP协议或者安全协议 HTTPS.其余协议还有mailto:用户打开邮箱的客户端,和ftp:用来作文件的转换, file用来获取文件,data获取外部资源等安全

域名(Domain)

www.example.com为域名,标明了须要请求的服务器的地址.ruby

端口(Port)

:80是端口号,标明了获取服务器资源的入口服务器

:80是端口号,标明了获取服务器资源的入口
端口号用于区分服务的端口,一台拥有IP地址的服务器能够提供许多服务,好比Web服务、FTP服务、SMTP服务等.那么,服务器的资源经过“IP地址+端口号”来区分不一样的服务.
若是把服务器比做房子,端口号能够看作是通向不一样服务的门,spa

文件路径

/path/to/myfile.html表示服务器上资源的路径,过去这样的路径标记的是服务器上文件的物理路径,可是如今,路径表示的只是一个抽象地址,并不指代任何物理地址.code

参数(query)

?key1=value1&key2=value2是请求里提供的额外参数.这些参数是以键值对的形式,经过&符号分隔开来,服务器能够经过这些参数进行相应的个性化处理regexp

 

片断(fragment)

#SomewhereInTheDocument是对资源的部分补充.fragment能够理解为资源内部的书签.用来想服务器指明展现的内容所在的书签的点.例如对于HTML文件来讲,浏览器会滚动到特定的或者上次浏览过的位置.对于音频或者视频资源来讲,浏览器又会跳转到对应的时间节点.视频

 

补充 : 相对路径和绝对路径

咱们上面所说的都是绝对路径,可是URL也有相对路径的表现形式.
URL所请求的资源依赖于请求所在的上下文,也就是当前环境,在浏览器的输入框内URL没有上下文,因此必须提供绝对路径.
可是当URL用于文件中时,例如HTML的页面,状况就大有不一样了,由于浏览器已经拥有了文件的URL,因此能够自动填补文件内使用的URL丢失的部分,例如协议,域名,端口等,因此咱们能够较为直观的区分相对路径绝对路径.
若是URL/开头,浏览器会从根服务器去获取资源,而不是从给定的文件夹中获取.
咱们用一些例子来直观的理解下
完整的URL:htm

相关文章
相关标签/搜索