二.网站服务(7月十八号)(不完整版)

2.1 FTP的端口号,分别是什么作用

控制端口(命令端口)21号端口

客户端希望与FTP服务器建立连接时,它首先会尝试连接到服务器的21号端口

数据端口(数据传输端口)

是否会用到20端口与FTP传输模式有关,主动模式使用20端口传输,被动模式下服务器端和客户端协商决定端口。

  • 主动模式:客户端向FTP服务器发送端口信息,由服务器主动连接该端口;
  • 被动模式:FTP服务器开启并发送端口信息给客户端,由客户端连接该端口,服务器被动接受连接。

2.2 FTP的主动模式和被动模式

  • 主动模式:客户端向FTP服务器发送端口信息,由服务器主动连接该端口;
  • 被动模式:FTP服务器开启并发送端口信息给客户端,由客户端连接该端口,服务器被动接受连接。

2.3 HTTP常见的状态码

2XX 成功

200 ok(请求成功) 204 no content (请求成功,但是没有结果返回)

3XX 重定向

301 move permanently (永久性重定向) 302 found (临时性重定向) 304 not modified (表示在客户端采用带条件的访问某资源时,服务端找到了资源,但是这个请求的条件不符合跟重定向无关) 307 temporary redirect (跟302一个意思)

4XX 客户端错误

400 bad request (请求报文存在语法错误) 401 unauthorized (需要认证(第一次返回)或者认证失败(第二次返回)) 403 forbidden (请求被服务器拒绝了) 404 not found (服务器上无法找到请求的资源)

5XX 服务器错误

500 internal server error (服务端执行请求时发生了错误)

502 Bad Gateway (作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应)

503 service unavailable (服务器正在超负载或者停机维护,无法处理请求)

2.4 HTTP和HTTPS的区别以及使用的端口号

HTTP:默认端口号是80

HTTPS:默认端口号是443,通过SSL协议进行加密传输

2.5 HTTP处理请求的过程

  1. DNS解析
  2. TCP三次握手
  3. 发起HTTP请求
  4. 服务器响应HTTP请求
  5. 浏览器解析和渲染
  6. TCP四次挥手

2.6 HTTP请求的协议栈过程,结合OSI七层⽹络模型,使⽤到了操作系统的哪些部分,⽹卡?浏览器?驱动程序?

2.6.1 OSI七层⽹络模型:
应用层(HTTP) 构建HTTP请求报文。请求报文包括请求行、请求头和请求体
传输层(TCP)请求报文被封装成TCP报文段,并添加TCP头部信息,如源端口号、目的端口号
网络层(IP)将TCP报文段封装成IP数据包,并添加IP头部信息,如源IP地址、目的IP地址
数据链路层 被封装成数据帧,并添加帧头部信息,通过物理链路(如以太网)传输到下一个节点
物理层 将数据帧中的比特流通过物理介质(如双绞线、光纤等)传输到目的端
2.6.2 操作系统
浏览器 HTTP请求的发起者,它负责构建HTTP请求报文,并通过操作系统的网络协议栈发送请求
操作系统内核 内核中网络协议栈负责处理网络数据包的接收、发送和转发。 它包括TCP/IP协议栈的实现,以及与其他网络协议的交互。
驱动程序 操作系统与网络硬件之间的接口 将网络数据包从操作系统的网络协议栈传输到网络接口卡 (或反向转换)
网卡(网络接口卡) 计算机与网络之间的物理连接设备。将数字信号转换为模拟信号(或反向转换),并通过物理介质传输数据

2.7 https认证过程

  1. 客户端访问https连接
  2. 服务端发送证书(公钥)给客户端
  3. 客户端验证服务端的证书
  4. 服务端接收加密信息,解密得到客户端提供的随机字符串
  5. 客户端验证服务端返回的握手信息,完成握手

2.8 服务器的这个扩展性和可靠性应该考虑哪⼏⽅⾯?

扩展性:
  • 存储扩展
  • 网络扩展
  • 弹性计算能力
  • 水平扩展与垂直扩展
可靠性:
  • 硬件故障频率
  • 冗余设计
  • 系统稳定性
  • 实时监控与日志记录
  • 专业支持团队

2.9 两个机房之间,如果通信延迟⽐较⼤,那这你的排查思路是什么?

分层排查:

  • 物理层与链路层

检查物理连接(光纤、网线、接口指示灯状态)

  • 网络层

路由分析(traceroute 追踪数据包在两个机房之间的传输路径)

检查网络设备

  • 传输层与应用层

利用netperf 测试两个机房之间的实际传输速度。

服务器和数据库服务器的性能和负载情况,确认无过载现象

2.10 对称加密和非对称加密的区别

对称加密

加密算法是公开的,靠的是秘钥来加密数据,使用一个秘钥加密,必须使用相同的秘钥才解密。

非对称加密

加密和解密使用不同的秘钥,一把公开的公钥,一把私有的私钥。公钥加密的信息只有私钥才能解密,私钥加密的信息只有公钥才能解密。

2.11 POST和GET请求方式的区别

  • GET请求的参数通过URL传递,POST放在Request body中。
  • GET请求会被浏览器主动cache,而POST不会,除非手动设置。
  • GET请求只能进行url编码,而POST支持多种编码方式。
  • GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
  • GET请求一般用于获取/查询资源信息,而POST一般用于更新资源信息。

2.12 正向代理和反向代理的区别

正向代理

在客户端部署代理服务器,代替客户端对外部网络发送和接收消息。客户端发送一个指定目标的请求给代理服务器,代理服务器再发送给目标服务器,目标服务器收到请求后,将响应的内容发送给代理服务器,代理服务器发给客户端。

在正向代理的过程中,代理服务器代替客户端向目标服务器发送请求目标服务器不知道谁是真正的客户端,不知道访问自己的是一个代理服务器还是客户端。服务器只负责将响应包发送给请求方

正向代理的用途

1、突破访问控制 例如:VPN 国内用户不能直接访问国外的网站,需要通过正向代理访问理服务器。 2、提高访问速度 代理服务器里有一个硬盘缓冲区,会将请求响应保存到缓冲区中。下次访问时会直接读取缓冲区中的数据返还给用户。 3、隐藏客户端真实的IP

反向代理

在服务器端部署代理服务器(为了区分,将真正响应的服务器成为业务服务器),让代理服务器替业务服务器接收请求或发送响应。客户端发送一个请求给代理服务器,代理服务器接收请求并将请求发送给业务服务器,业务服务器将响应发送给代理服务器,代理服务器再将响应发送给客户端。

在反向代理的过程中,客户端不知道自己请求的是代理服务器还是业务服务器。

反向代理用途

1、隐藏服务器真实IP 2、负载均衡 代理服务器可以将对业务服务器的请求根据预设算法分发到业务服务器上。 3、提高访问速度 对于静态页面的访问,代理服务器可以将数据存储到硬盘内,当出现有大量静态页面的访问时,可以直接从代理服务器获取响应。对于动态内容请求,代理服务器可以将缓存存在本地,提高访问响应速度。 4、提供安全障性 可以将代理服务器作为应用层的防火墙,拦截恶意的Web攻击。

2.13 我有⼀套反向代理的服务器,如果某次访问报了502,想要⾃动转发其他服务器上,需要什么参数

第一步:配置负载均衡

在Nginx中,使用负载均衡功能来将请求分散到多个后端服务器上。这可以通过upstream块来定义一组服务器,并使用server指令来指定每个服务器的地址和端口。例如:

upstream myapp1 {  
    server backend1.example.com weight=5;  
    server backend2.example.com;  
    server backend3.example.com down; # 假设这个服务器暂时不可用  
}  
  
server {  
    listen 80;  
  
    location / {  
        proxy_pass http://myapp1;  
        # 其他proxy相关配置...  
    }  
}

在这个例子中,如果backend1.example.combackend2.example.com中的任何一个因为某些原因(如502错误)无法响应,Nginx将自动尝试将请求转发到另一个健康的服务器。

第二步:配置错误处理

虽然Nginx的负载均衡器默认会在后端服务器失败时尝试其他服务器,但您还可以配置特定的错误处理逻辑。例如,您可以定义一个error_page指令来捕获502错误,并尝试将请求转发到一个特定的服务器或执行其他操作:

server {  
    listen 80;  
  
    location / {  
        proxy_pass http://myapp1;  
        proxy_next_upstream error timeout http_500 http_502 http_503 http_504;  
        error_page 502 = @fallback;  
    }  
  
    location @fallback {  
        proxy_pass http://fallback_server;  
    }  
}

在这个配置中,如果后端服务器返回502错误,Nginx将自动将请求转发到fallback_server指定的服务器上。

2.14 什么是惊群以及如和解决惊群

定义:

多个线程或进程在等待同一个事件(例如I/O操作、信号、锁)时,事件发生后会导致所有等待的线程或进程同时被唤醒,竞争资源,从而引发性能问题或系统负载过高。这种现象被形象地称为“惊群现象”。

解决:
边缘触发模式:

在事件发生时只通知一次,直到处理完成后才会再次通知,避免了重复唤醒的问题

使用互斥锁或读写锁

确保只有一个线程能够处理事件,其他线程在锁释放前不会被唤醒

通过事件队列和事件分发器来处理事件

避免多个线程同时等待同一个事件

减少线程或进程数量

评论

  1. ADMINNNN
    2 月前
    2024-11-16 10:28:02

    YYDS

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇