Linux高性能服务器编程笔记(四)

第四章 TCP/IP通信案例

4.2 部署代理服务器

4.2.1 HTTP代理服务器的工作原理

正向代理服务器:要求客户端自己设置代理服务器的地址,客户的每次请求都将直接发送到该代理服务器,并由代理服务器来请求目标资源(client->proxy->Internet),示例:翻墙

反向代理服务器:被设置在服务器端,用代理服务器来接收Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从内部服务器上得到的结果返回给客户端。(Internet->proxy->client)

透明代理服务器:只能设置在网关上,可以看做正向代理的一种特殊情况
在这里插入图片描述

4.4 DNS服务器

在这里插入图片描述
DNS的过程:

  1. 程序通过读取/etc/resolv.conf文件获取DNS服务器的IP地址,然后将控制权传递给内核中的UDP模块。
  2. UDP模块将DNS查询报文封装成UDP数据报,同时将源端口号和目标端口号加入UDP数据报头部。
  3. 调用IP服务,将UDP数据报封装成IP数据报,将源端IP和通过步骤1查询到的DNS服务器IP地址加入IP数据报头部(值得留意的是src和dst的IP在传输过程中是不变的)。
  4. 此时,IP模块查询路由表。由于只能匹配默认路由项,因此先被发送至路由器,然后通过路由器转发。(此时的dstIP地址仍然是DNS服务器)
  5. ARP缓存中没有与路由器对应的缓存项,需要发起ARP广播来查询路由器的IP地址。
  6. 查询成功后,以太网举动程序将IP数据报封装成以太帧发给路由器。

4.6 HTTP请求

4.6.1 HTTP请求方法

在这里插入图片描述
其中,HEAD,GET,OPTIONS和TRACE是安全的,而POST,PUT,DELETE和PATCH则影响服务器上的资源。
GET,HEAD,OPTIONS,TRACE,PUT和DELETE等请求方法被认为是等幂的,即多次连续的、重复的请求和只发送一次该请求具有完全相同的效果。则POST方法则不同,连续操作可能进一步影响服务器上的资源。

PS:GET和POST的区别?
GET是从服务器上获取资源,POST是向服务器提交数据。GET是幂等的,也就是重复操作具有相同效果,而POST的重复操作可能影响到服务器的资源。

4.6.2 HTTP应答

常见的状态码和状态信息及其含义
在这里插入图片描述
Cookie的作用:
Cookie是服务器发送给客户端的特殊信息(通过HTTP应答的头部字段“Set-Cookie”),客户端每次向服务器发送请求的时候都需要带上这些信息(通过HTTP请求的头部字段“Cookie”)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值