今天讨论技术的时候,让我去看看 HTTP
??? 我不服,撒隔夜窝(钓鱼佬)
HTTP 概述
HTTP 是通讯协议,是在 web 上进行数据交换的基础。客户端和服务端通过交互互相各种的消息,浏览器这样的客户端发出的请求叫做请求(request) ,被服务端响应的消息叫做响应(response)
我们每次听到 HTTP 就想起 TCP,TLS 。那么它们有什么关系呢?
HTTP 是一个应用层的协议,TCP 是网络协议之一。它使两天主机能够建立连接并交互数据量。TCP 可以校验或者是保证数据传输的可靠性,操作系统通过一个编程接口来管理 TCP
HTTP 与 TCP 我们也可以这样去理解:
HTTP的责任是定义数据,在两台计算机相互传递信息时,HTTP 规定了每段数据以什么方式让另外一台计算机理解,而 TCP 所要规定的是数据应该怎么传输稳定而高效。
我们使用 HTTP,不用关心路由器,调制解调器,由于 web 的层次设计,那些在网络和传输层的细节都隐藏起来了。
代理(Proxy)
刚才说了 HTTP 层次原因,传输层,网络层,物理层上,对于 HTTP 应用层而言就是透明的,这时候代理就出现了,代理可以表现得透明和不透明。(改变请求会通过它们)
代理也是网络服务,允许一个终端通过这个服务与另一个终端进行非直接的连接,一些网关,路由器等具备网络代理的功能,可以在一定程度上阻止网络攻击(另外可以在实行网络审查的国家),可以通过代理服务器的方式以突破网络审查(我小时候翻墙上网,现在我也翻墙上网。)
HTTP 是无状态,有会话的
HTTP 是无状态的;在同一个连接中,两个执行的请求是没有关系的,所以客户端与服务端无法进行连续的交互,而使用 HTTP Cookie 就可以解决这个问题。
EvenetSource
服务端推送的一个网络事件接口,与 webSockets 不同的是,服务端推送是单向的,数据信息被单向从服务端到客户端分发。对于处理社交媒体的更新,新闻提要将数据传递到客户端存储进制。 EvenetSource 这个有效方案。
说到我起了 web rtc
web Rtc
它可以实现 .对. 我当时做过一个可以视频会议还可以聊天用的react哪些,当时没想过这些问题,它咋实现的
交互式连接,用于寻找两台计算机在对等网络中尽可能直接地相互交谈方法。
NAT
NAT 是一种地址转换技术,它可以将 ip 数据报文中头中的 IP 地址转换为另一个 IP 地址,并通过转换端口号达到地址重用的目的。
STUN
NAT 的会话遍历实用程序 ,它为主机提供了一个工具来发现网络地址转换器的存在,并发现 ip 地址和端口号,远程主机。
我们使用 STUN 工具来帮助客户端确定他们的 公共 ip 地址,以便他们可以相互连接。
日常生活中,我们通过工作和家庭网络进行互联网访问,这时候我们的设备通常是在防火墙和网络访问转换设备(NAT)的后面,因此并没有分配静态的公共 IP 地址。
rec 首先会向 STUN 服务器请求一个面向公众的 ip 地址,如果这个请求得到了回应,并且我们收到了面向公众的 ip 地址和端口,就可以告诉其他人如何直接和我们建立连接,而别人也可以使用 STUN 使用相同的操作。
HTTP 安全
内容安全策略 是一个额外的安全层,用于检测并削弱某些特定类型的攻击,包括跨站脚本(XSS) 和数据注入攻击等。无论是数据盗取,网站内容污染还是恶意软件开发,这些攻击都是主要的手段。
meta元素和HTTP 标头都可以配置该策略
HTTPS
如果一个接受 HTTP 的请求 ,然后重定向到 HTTPS,用户可能在开始重定向前,通过没有加密的方式与服务器通信,可以利用重定向将用户引导至恶意站点,而不是原始站的安全版本。
HTTP Cookie
是服务器发送到用户浏览器并保存在本地的一小块数据,浏览器会存储 cookie 并在下次向同一服务器再发起请求时携带并发送到服务端上。
— 会话状态管理
如用户登陆状态,购物车,游戏分数,或其他需要记录的信息
— 个性化设置
如用户自定义设置,主题,和其他设置
— 浏览器行为跟踪
如跟踪分析用户行为
HTTP 协议
在 HTTP 协议中,重定向操作由服务器向请求发送特别的重定向响应而触发。重定向响应包含 3 开头的状态码,以及 location 标头,其保存着重定向的 URL
永久重定向,临时重定向(有时候请求的资源无法从其标准地址访问 ,但是却可以从另外一个的地方访问。在这种情况下,可以使用临时重定向)
搜索引擎,和其他爬虫不会记录,新的临时 URL,在创建 ,更新或者删除资源的时候,临时重定向也可以用于显示临死性的进度页面。
定义重定义的其他方式
- 借助 HTML 的 元素的 HTML 重定向机制
- 借助 DOM 的 Js 重定向机制。
扩大站点的用户覆盖面
一个常见的场景是,假如站点位于 www.example.com 域名下,那么通过 example.com 也应该可以访问到。这种情况下,可以建立从 example.com 的页面到 www.example.com 的重定向。此外还可以提供你域名常见的同义词,或者该域名容易导致的拼写错误的别称来重定向到你的网站。(可以用中文?)