统一资源定位符,定位互联网上的某个资源
协议(http或https) : //IP协议:端口号/项目名称/资源
一、上网的本质
上网的本质就是浏览器作为客户端,向作为服务端的服务器发送请求,
以刷B站位例,我们所浏览的时评都是在B站的服务器上面的,要访问到资源,就要通过IP地址和端口号到指定的地方去获取,
但我们在刷B站的时候,好像没有输入IP地址和端口号吧,那是因为在安装B站的时候,已经把其中的IP地址存到手机里面了。
二、认识URL的组成
假设服务器是一台Linux主机,那么通过IP地址和端口号就可以具体的定位到这台主机的某个进程,我们想看的视频也已经上传到这个服务器上面了,所以我们向服务器发送的请求中肯定有资源路径的索引,故URL的格式如下:
协议方案名:http是众多应用层中的一种
服务器IP地址和端口号:表明具体访问哪一个服务器
资源路径:通过IP地址和端口号到达指定服务器后,就需要资源路径来访问具体的资源了
查询字符串:比如在使用百度搜索时,要输入一些查询条件,就放在这里了
上面这个解释太潦草了有点,我们来个更加详细的:
http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name
从上面的url可以看出,一个完整的url应该包括以下几个部分
- 协议部分(protocol):该url的协议为http,这表明网页使用的时http协议,常见的还有https等,在http后面的“//”是分隔符
- 域名部分(hostname):主机地址,该url的域名部分是www.aspxfans.com,可以使用ip地址作为域名使用,例如上面的192.168.11.150
- port 端口:在域名后面的是端口,使用” :“冒号分隔,端口并不是URL的必须部分,如http://www.baidu.com,就省略了端口号,省略的端口号默认为80
- path 路径:网络资源在服务器中的指定路径,是从域名结束后的的第一个”/“开始到最后一个”/“结束都属于指定路径,路径也不是url的必须部分
- 文件名部分(parameters) :需要向服务器中传入参数,在这里,是从域名结束后的的第一个”/“开始到”?“都属于,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分,这里的文件名部分就是”index.asp",文件名部分也不是url必须的部分,如果没有,则使用默认文件名
- 锚部分(#fragment) 从“#”开始到最后都是锚部分,本例中锚部分是“name"
- 参数部分(query):从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。