统一资源定位URL

来源:互联网 发布:钉钉打卡机mac地址 编辑:程序博客网 时间:2024/04/30 01:56

 

 统一资源定位URL(Uniform Resource Locator)
用于表示Internet网络资源的位置信息
结构:通常由4部分构成
网络协议名+资源所在的主机名+网络服务程序端口号+资源本身的名称
例:http://www.it315.org:8080/index.html
其中HTTP(Hypertext Transfer Protocol 超文本传输协议) 是协议名
www.it315.org  是资源所在的主机名
8080 是端口号
Index.html 是资源名
 
注:
1.HTTP协议默认的端口号位80 如果服务器程序使用默认的端口号 就可以在URL中不指定端口号
2.URL通常是对大小写敏感的(主机名除外)
 
                   相对URL
相对URL不包括协议和主机地址信息,一个完整的URL由基准URL和相对URL组成
例:http://www.it315.org/index.html
www.it315.org为基准URL为相对URL index.html
注:如果基准URL以”/”结束,则完整的URL就是基准URL加上相对URL
如果基准URL不是以”/”结束,基准URL的最后部分被认为是资源,完整的URL为基准URL的前半部分加上相对URL
例:基准URL为 http://www.it315.org/dir1/dir2,相对URLindex.html
完整的URL为 http://www.it315.org/dir1/index.html
 
                   为URL指定参数
使用URL地址访问Internet上的资源时,可以通过URL地址向服务器传递参数
参数由参数名和参数值组成,参数名与参数值之间用=分隔
URL地址与参数之间用?分隔  各个参数之间用&分隔
例:http://www.it315.org/dealregister.html?name=zhangsan&password=123
注:参数名后也可以没有参数值,但也得在参数名后加=,表示对其赋值为一个空的字符串
 
                   带有定位标记的URL
在一个网页中,可以定义若干个定位标记,每个定位标记都有一个名称,在URL地址后
接#,再加上标记名称就可以直接定位到这个网页的指定标记处
例:在index.html网页中定义了一个名为section的标记
可以使用下面这种方法直接访问
http://www.it315.org/index.html#section
 
 
                   URL编码
当使用浏览器访问www服务器上的网页文件时,需要进行使用http进行通信,在HTTP协议中 ,浏览器不能直接向服务器传递某些特殊字符,必须将这些字符进行编码后进行传送。
URL编码规则
1.       将空格转换为+
2.       0~9,a~z,A~Z 之间的字符保持不变
3.       其他的所有字符,用这个字符的当前字符集编码在内存中的十六进制表示,并在每个十六进制字之前加上一个%
例:+用%2B表示 =用%3D表示
注:即使同一个中文字符在不同的字符编码方式下,在内存中的编码也是不同的的,一个字符的URL编码是针对字符在内存中的编码值而言的,采用不同编码的同一个中文字符URL编码结果是不同的
URL编码是不能死记硬背的,在java的java.net包中有URLEncoder和URLDecoder这两个类,分别用来实现URL的编码和解码
 
下面这几种情况需要注意
1.       空格可以用+表示,也可以按URL编码的第三条规则,直接用%加其十六进制编码表示
即%20,下面这两种效果是一样的
http://www.it315.org/dealregister.html?name=a+b&password=123
http://www.it315.org/dealregister.html?name=a%20b&password=123
2.       如果确信URL字符串的特殊字符没有引起使用上的歧义或冲突,也可以不对其进行编码直接传送给服务器,下面这两种效果也是一样的
http://www.it315.org/dealregister.html?name=中国&password=123
http://www.it315.org/dealregister.html?name=%D6%D0%B9%FA&password=123
3.       如果URL字符串中的特殊字符可能会引起歧义或冲突,则必须对其进行编码,例如对上面的name参数赋值”中&国”,如果不对&进行URL编码,就会导致如下情况
http://www.it315.org/dealregister.html?name=&&password=123
服务器回任务传递给name的值为”中”,而”国”为一个新的参数名,所以必须对其编码
上面的URL应该写成
http://www.it315.org/dealregister.html?name=%26&password=123
4.       如果在浏览器地址栏输入的URL地址为
http://www.it315.org/example/index.html#section
这个URL地址的前一部分指明了该URL在www服务器中的位置和端口号(默认为80)
后一部分(example/index.html#section)则指明了要访问的资源在服务器中的位置。
注:浏览器通过前一部分与服务器建立连接,然后将后一部分发送给服务器,请求服务器返回这个路径下的网页文件,所以浏览器只传送了URL地址的后半部分字符给服务器,所以只需要对后半部分进行编码
http://www.it315.org/example%2Findex.html%23section
 
 
原创粉丝点击