1、HTTP协议特性

1、HTTP协议(超文本传输协议):定义了客户端(如浏览器)与服务器之间的通信方式,以交换或传输超文本(超文本:视频、音频、文字等)

2、HTTP协议是客户端与服务器通信基础:客户端通过HTTP协议向服务器发送请求,服务器处理后返回响应。

3、HTTP协议是无连接、无状态的协议(每次请求,都要建立新的连接,不会保持旧连接-即无连接) ---> 因为HTTP底层协议是TCP,而TCP是要建立连接的,所以HTTP也是要建立连接的。

2、URL - Uniform Resource Locator(统一资源定位地址)

2.1、什么是URL

平时我们口中所说的网址,就是URL

http://user:pass@www.example.jp:80/dir/index.html?uid=1#ch1

 其中:

http:协议方案名(如https)

user:pass:登陆信息(认证)

www.example.jp:服务器地址(DNS技术,会自动将域名转换成IP地址)

80:服务器端口号

/dir/index.html:带层次的文件路径(一般index.html指该网页的首页)

uid=1:查询字符串参数

ch1=片段标识符

其中像/ ? # 这样的字符,已经被url当作特殊字符理解了(需要转义)

 为什么我们平时所见的网址没有这么详细呢?比如百度的首页网址:

https://www.baidu.con/index.html

 1、登陆信息(认证):不一定需要认证,并且登陆信息被浏览器记录即可。

2、为什么没有端口号呢:知名协议的端口号是强关联的,对于HTTP协议,服务器一旦启动,就是绑定80端口。所以可以忽略端口号。

3、第一个/:不一定是根目录,而是web根目录(即当前网页资源的根目录,不是系统根目录)。

4、后面的字符参数,不是每个页面都有,在特定需要输入信息(参数)的页面,才会出现。

2.2、再谈资源--URL中的资源路径

在HTTP这里,资源,统一可以认为是超文本资源。

在没有获取到资源前,这些资源都在服务器端。

我们通过HTTP协议,发起请求,服务器将资源放入响应中返回,我们便获取到资源。

而大部分服务器的底层都是Linux系统 -- Linux下,一切皆文件。

因此,获取资源,就是打开某个文件,获取文件数据。

想要打开文件,就得找到文件:

URL中:服务器地址(域名) +  默认端口 -> 确定唯一主机上的唯一进程。

带层次的资源路径:确定该主机上的唯一文件。

2.3、特殊字符转义--urlencode/urldecode

像/ ? 这样的特殊字符,已经被url当作特殊意义理解了,因此不能随意出现。

想要在参数中带有这些字符,就必须进行转义。

转义的规则如下:

将需要转义的字符转为16进制

从右到左,取4位(不足四位直接处理)

每2位做1位,前面加上%,编码成%XY的格式

例如:

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部