【JavaEE初阶】HTTP协议|HTTP请求|URL基本格式|URLencode

💡推荐

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击跳转到网站


HTTP请求(Request)

认识URL

URL基本格式

平时我们俗称的"⽹址"其实就是说的URL(Uniform Resource Locator统⼀资源定位符)

互联⽹上的每个⽂件都有⼀个唯⼀的URL,它包含的信息指出⽂件的位置以及浏览器应该怎么处理
⼀个具体的URL:(可以看到,在这个URL中有些信息被省略了)

1 https://v.bitedu.vip/personInf/student?userId=10000&classId=100

(1)协议名称:https :

协议⽅案名.常⻅的有http和https,也有其他的类型.(例如访问mysql时⽤的jdbc:mysql )

(2)身份认证信息:user:pass 

登陆信息,现在已经废弃了

(3)IP地址/域名:v.bitedu.vip

服务器地址.此处是⼀个"域名",域名会通过DNS系统解析成⼀个具体的IP地址.(通过ping命令可以看到, v.bitedu.vip 的真实IP地址为 118.24.113.28 )

(4)端口号:(可省略)

上⾯的URL中端⼝号被省略了.当端⼝号省略的时候,浏览器会根据协议类型⾃动决定使⽤哪个端⼝.例如http协议默认使⽤80端⼝,https协议默认使⽤443端⼝,

(5)路径:(path)/personInf/student :带层次的⽂件路径.

描述了这个机器的这个程序,上面管理的哪个程序

(6)查询字符串:(query string):userId=10000&classId=100

本质是⼀个键值对结构,键值对之间使⽤&分隔,键和值之间使⽤=分隔.

此处键有啥,值有啥都是根据程序员自己定义

(7)片段标识符 :#

表示一个网页中的某个部分

此URL中省略了⽚段标识.⽚段标识主要⽤于⻚⾯内跳转.(例Vue官⽅文档:https://cn.vuejs.org/v2/guide/#%E8%B5%B7%E6%AD%A5,通过不同的⽚段标识跳转到⽂档的不同章节)

扩展:使⽤ping命令查看域名对应的IP地址.

1. 在开始菜单中输⼊ cmd ,打开 命令提⽰符 

2. 在cmd中输⼊ ping v.bitedu.vip ,即可看到域名解析的结果.

PS:有的电脑上ping命令会报错 ping 不是内部或外部命令,也不是可运⾏的程序或批处理⽂件 。这种情况是因为有的Windows10默认没有启⽤ping命令.

百度搜索windows10 启⽤ ping 即可

 URL中的可省略部分

• 协议名:可以省略,省略后默认为http://

• ip地址/域名:在HTML中可以省略(⽐如img,link,script,a标签的src或者href属性).省略后表⽰服务器的ip/域名与当前HTML所属的ip/域名⼀致.

• 端⼝号:可以省略.省略后如果是http协议,端⼝号⾃动设为80;如果是https协议,端⼝号⾃动设为443.

• 带层次的⽂件路径:可以省略.省略后相当于/.有些服务器会在发现/路径的时候⾃动访问/index.html

• 查询字符串:可以省略

• ⽚段标识:可以省略


关于URLencode

像/ ? : 等这样的字符,已经被url当做特殊意义理解了.因此这些字符不能随意出现.⽐如,query string里value部分,一旦也包含这些符号,就会使url的解析出现问题,那么构造http请求就必须先对特殊字符进⾏转义urlencode.

⼀个中⽂字符由UTF-8/GBK这样的编码⽅式构成,虽然在URL中没有特殊含义,但是仍然需要进⾏转义.否则浏览器可能把UTF-8/GBK编码中的某个字节当做URL中的特殊符号.

转义的规则如下:

将需要转码的字符转为16进制,然后从右到左,取4位(不⾜4位直接处理),每2位做⼀位,前⾯加上%,编码成%XY格式

例如:

 "+"被转义成了"%2B"(“+”的acsii就是“2B”)

有些时候,浏览器为了让用户看起来方便,显示的是转码之前的字符,而实际上发送的是转码之后的

例子:

浏览器显示:

但是复制URL下来却是:

urldecode就是urlencode的逆过程

  • 41
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深鱼~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值