HTTP系列(五)—— 服务器的工作

建立连接

如果客户端已经打开了一条到服务器的持久连接,可以使用那条连接来发送它的请求。否则,客户端需要打开一条新的到服务器的链接。客户端请求一条到 Web 服务器的 TCP 连接时,服务器会建立连接,判断连接的另一端是哪个客户端,从 TCP 连接中将 IP 地址解析出来。一旦新的链接并接受,服务器就会将连接添加到其现存的 Web 服务器连接列表中,并且监视连接上数据传输。服务器可以随意拒绝或立即关闭任一条连接,有些服务器会因为客户端 IP 地址或主机名是未认证的,或者因为它是已知的恶意客户端而关闭连接。当然,服务器也可以使用其他识别技术:

  • 客户端主机名识别

可以利用 “反向 DNS ” ,对大部分服务器进行配置,以便将客户端 IP 地址转换成客户端主机名。Web服务器 可以将客户端主机名用于详细的访问控制和日志记录。但是这种方式是很浪费时间的,很多大容量的服务器要么会禁止主机名解析,要么只允许对特定内容进行解析

  • 通过 ident 识别客户端

服务器可以通过 ident 协议(前提是服务器得支持这个协议)找到 HTTP 连接的用户名。如果客户端支持 ident 协议,就在 TCP 端口113 上监听 ident 请求。

接收请求

连接上有数据到达时,服务器会从网络连接中读取数据,并将请求报文中的内容解析出来。以下就是具体的解析步骤:

  • 解析请求行,查找请求方法、指定的资源标识符(URI)以及版本号

  • 读取报文首部

  • 读取请求主体(非必须)

处理请求

一旦服务器接收到请求,就可以根据方法、资源、首部以及可选的主体来进行处理,由于不同的请求方法具有不同的处理方式。

访问资源

在前面也提到过,可以认为在服务器上存储的一切事物都是资源,所以也可以说服务器就是资源服务器,它们负责发送预先创建好的内容,比如,HTML 页面。

  • docroot ,这是最简单的资源映射形式,就是用请求 URI 作为名字来访问服务器中的文件。

  • 目录列表,服务器可以接受对目录 URL 的请求,其路径可以解析为一个目录,而不是具体的资源。在这种情况下,大多数的服务器都会去寻找一个名为 index.htmlindex.htm 的文件来代替此目录。

  • 动态资源映射,其实就是一个复杂的后台应用程序在控制管理着复杂的资源关系,动态的返回响应。

构建响应

  • 响应实体。如果事务处理产生了响应主体,就将内容放在响应报文中回送过去。响应报文通常包含:
  1. 描述了响应主体 MIME 类型的 Content-Type 首部

  2. 描述了响应主体长度的 Content-Length 首部

  3. 实际报文的主体内容

  • 重定向。服务器有时会返回重定向响应而不是成功的报文。服务器可以将浏览器重定向到其他地方执行请求。

发送响应

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
/bbs.csdn.net/topics/618191877)

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 17
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值