Translate

Nginx 功能

1. 反向代理

2. 负载均衡 (轮询, 加权轮询)

3. iphash 可以保证session不共享的问题 比如让user1一直到server1上

(但是这个方法不够好,server1挂了 就都丢失了; 用 Redis)

4. 动静分离:静态资源 用 Nginx,动态资源 用 web服务




正向代理 和 反向代理

在目标服务器 和 客户端 中间 有一个 代理服务器


1. 正向代理(forward proxy)

为了从目标服务器取得内容,客户端向代理服务器发送一个请求并指定目标,然后代理服务器向目标服务器转交请求并将获得的内容返回给客户端


* 正向代理,其实是"代理服务器"代理了"客户端",去和"目标服务器"进行交互


2. 反向代理(reverse proxy)

以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端


*反向代理,其实是"代理服务器"代理了"目标服务器",去和"客户端"进行交互。



总结:

一个隐藏的是 客户端

一个隐藏的是 服务器端

正向代理其实是客户端的代理,帮助客户端访问其无法访问的服务器资源(翻墙)。反向代理则是服务器的代理,帮助服务器做负载均衡,安全防护等。



什么是 http 服务器,有哪些?

 

📌 什么是 HTTP 服务器?


HTTP 服务器(Web Server)是一种软件,用于处理客户端(通常是浏览器)发送的 HTTP 请求,并返回网页、数据或 API 响应


🔹 HTTP 服务器的主要作用

1. 处理请求:接受来自浏览器、移动应用或 API 客户端的 HTTP 请求。

2. 返回数据:提供静态文件(HTML、CSS、JS、图片等)或动态数据(数据库查询结果、API 响应)。

3. 反向代理:将请求转发到后端服务器,提高性能或进行负载均衡。

4. 安全控制:提供 HTTPS、身份验证、访问控制等安全功能。


🔹 HTTP 服务器的工作流程


💡 假设用户在浏览器输入 http://example.com,请求一个网页

1. 客户端发送 HTTP 请求

浏览器向 example.com 服务器发送 GET /index.html 请求。

2. 服务器解析请求

服务器检查 index.html 是否存在,并决定返回什么内容。

3. 服务器返回 HTTP 响应

服务器返回 HTTP 状态码 200 OK,并附带 index.html 文件内容。

4. 浏览器渲染页面

浏览器解析 index.html,然后请求相关的 CSS、JavaScript 和图片,最终呈现网页。




http 和 tcp 的关系


1. 网络层:建立 主机到主机
   传输层:建立 端口到端口



http包 是 封装在 tcp包里面的







什么情况可以抓包

在你自己的服务器上,你可以合法抓包(tcpdump)。

在同一局域网(且有权限),可以使用 Wireshark。

在公网,你无法直接嗅探目标服务器的流量,除非你控制了某个网络中间节点(如代理服务器或 ISP)。





http 和 https

  • 区别:

  • 1. HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好。
  • 2. 使用 HTTPS 协议需要到 CA(Certificate Authority,数字证书认证机构) 申请证书,一般免费证书较少,因而需要一定费用。证书颁发机构如:Symantec、Comodo、GoDaddy 和 GlobalSign 等。
  • 3. HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而 HTTPS除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包
  • 4. http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443
  • 5. HTTPS 其实就是建构在 SSL/TLS 之上的 HTTP 协议,所以,要比较 HTTPS 比 HTTP 要更耗费服务器资源。



加密方法:

对称密码指加密和解密使用同样的密钥。
非对称密码指加密和解密使用不同的密钥。


1. 对称加密:
(AES and DES)其中DES已经不再安全
缺点:因为密钥相同,所以传输密钥的过程 很危险


2. 非对称加密 (也叫做 公钥加密):
非对称加密需要4个密钥,而对称只需要一个
通信双方各自准备一对公钥和私钥,其中公钥是公开的
公钥用来对信息加密,私钥由信息接受方保留,用来解密

RSA算法
依然有缺点:中间人攻击:在交换公钥的时候被有人篡改了

* 还可以用作签名,用私钥签名


为了解决中间人攻击,进一步改进:用证书证明公钥身份合法性



https:

HTTPS 在内容传输的加密上使用的是对称加密,非对称加密只作用在证书验证阶段

https://xiaolincoding.com/network/2_http/https_rsa.html
https://www.cnblogs.com/wzh2010/p/18115794