HTTP协议详解-day02


HTTP协议请求

URL结构

URL (Uniform Resource Locator 统一资源定位符)
互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它.
URL 的详细规则由因特网标准RFC1738进行了约定:https://datatracker.ietf.org/doc/html/rfc1738
在这里插入图片描述

例如:https://www.bilibili.com/documentary/?spm_id_from=333.1007.0.0

https :协议方案名. 常见的有 http 和 https, 也有其他的类型。
user:pass : 登陆信息. 现在的网站进行身份认证一般不再通过 URL 进行了,一般都会省略。
www.bilibili.com : 服务器地址. 此处是一个 “域名”, 域名会通过 DNS 系统解析成一个具体的 IP 地址。
端口号: 上面的 URL 中端口号被省略了. 当端口号省略的时候, 浏览器会根据协议类型自动决定使用哪个端口。( http 协议默认使用 80 端口, https 协议默认使用 443 端口
documentary : 带层次的文件路径。
spm_id_from=333.1007.0.0:查询字符串(query string). 本质是一个键值对结构。键值对之间使用 & 分隔;键和值之间使用 = 分隔。
片段标识: 此 URL 中省略了片段标识。


URL 中的可省略部分

1.协议名: 可以省略, 省略后默认为 http://
2.ip 地址 / 域名: 在 HTML 中可以省略(比如 img, link, script, a 标签的 src 或者 href 属性). 省略后表示服务器的 ip / 域名与当前 HTML 所属的 ip / 域名一致.
3.端口号: 可以省略. 省略后如果是 http 协议, 端口号自动设为 80; 如果是 https 协议, 端口号自动设为 443.
4.带层次的文件路径: 可以省略. 省略后相当于 / . 有些服务器会在发现 / 路径的时候自动访问/index.html
5.查询字符串: 可以省略
6.片段标识: 可以省略


URL encode

转义的规则如下: 将需要转码的字符转为16进制,然后从右到左,取4位(不足4位直接处理),每2位做一位,前面加上%,编码成%XY格式

现在URL转义表示法比较常用的有两个:
RFC 2396 - Uniform Resource Identifiers (URI): Generic Syntax
RFC 3986 - Uniform Resource Identifier (URI): Generic Syntax
以下是RFC3986中对转义部分的一些定义:


HTTP协议常见方法

在这里插入图片描述

GET方法

GET 是最常用的 HTTP 方法,常用于获取服务器上的某个资源。

浏览器打开bilibili,此时fiddler中抓到的抓包结果,其中包含浏览器地址栏发送的GET请求:
GET请求
请求报文:
在这里插入图片描述

GET 请求的特点
首行的第一部分为 GET
URL 的 query string 可以为空, 也可以不为空.
header 部分有若干个键值对结构.
body 部分为空

POST 方法

登陆系统,通过fiddler查看抓包结果,其中包含POST 方法:
在这里插入图片描述
观察请求报文:
在这里插入图片描述

POST 请求的特点
首行的第一部分为 POST
URL 的 query string 一般为空 (也可以不为空)
header 部分有若干个键值对结构。
body 部分一般不为空,body 内的数据格式通过 header 中的 Content-Type 指定. body 的长度由header 中的 Content-Length 指定。


GET和POST方法区别

1.语义不同: GET 一般用于获取数据, POST 一般用于提交数据
2.GET 的body 一般为空, 需要传递的数据通过 query string 传递
POST 的 query string 一般为空, 需要传递的数据通过 body 传递
3.GET 请求一般是幂等的, POST 请求一般是不幂等的。(如果多次请求得到的结果一样, 就视为请求是幂等的)
4.GET 可以被缓存, POST 不能被缓存

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IPv6邻居发现协议(NDP)是IPv6网络的一种重要协议,主要用于发现同一链路上的IPv6节点,以及维护IPv6邻居关系。以下是对NDP的详细解释: 1. NDP的作用 IPv6的节点地址通常是由网络前缀和节点标识符组成的,其节点标识符通常是由MAC地址派生而来。因此,当IPv6节点需要与同一链路上的其他节点通信时,需要知道这些节点的地址和MAC地址。NDP主要用于以下方面: - 发现同一链路上的IPv6节点和它们的MAC地址; - 维护IPv6邻居关系,检测邻居是否在线或不在线; - 为IPv6地址解析提供支持。 2. NDP消息类型 NDP使用以下几种消息类型: - 邻居请求消息:用于请求其他节点的MAC地址; - 邻居通告消息:用于通告自己的IPv6地址和MAC地址; - 重定向消息:用于告诉其他节点一个更优的路由。 3. NDP的操作过程 当一个IPv6节点需要向同一链路上的其他节点发送数据时,它首先需要通过NDP查找目标节点的MAC地址。具体操作过程如下: 1)发送邻居请求消息:源节点向目标节点发送一个邻居请求消息,请求目标节点的MAC地址。 2)接收邻居通告消息:如果目标节点在线并且收到了邻居请求消息,则向源节点发送一个邻居通告消息,包含自己的IPv6地址和MAC地址。 3)建立邻居关系:源节点收到邻居通告消息后,将目标节点的IPv6地址和MAC地址存储在邻居缓存,同时建立邻居关系。 4)维护邻居关系:源节点会定期向邻居节点发送邻居通告消息以更新邻居缓存的邻居信息。如果源节点长时间没有收到邻居通告消息,则认为邻居离线,将邻居缓存的邻居状态设置为不在线。 4. NDP的安全性问题 由于NDP消息未进行身份验证,因此可能存在一些安全性问题,如欺骗攻击、重放攻击等。为了避免这些攻击,可以采用以下措施: - 使用IPv6防火墙来限制NDP消息的流量; - 在NDP消息使用加密技术保护消息的机密性和完整性; - 使用IPv6安全扩展协议(IPsec)来保护NDP消息的安全。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值