一次网络请求的全部过程

2015-02-08 12:03:08   最后更新: 2015-02-08 12:03:08   访问数量:2373




上周阅读了一下 tinyhttpd 的源码,麻雀虽小,五脏俱全,精炼的500行代码实现了一个 http server

然而,放到网上后,有人评论:为什么没有包含 html 解析的代码?为什么没有包含对 XSS、SQL 注入攻击处理的代码,令我啼笑皆非,不明所以

所谓“君子务本,本立而道生”,无论做什么事情,基础才是最重要的,所以闲来无事,说一下 http server 究竟是做什么用的

 

从哪里着手呢?就从浏览器输入网址到用户看到信息这个过程说吧

 

下图展现了一次请求的过程:

 

 

图中,对 DNS 请求过程展示了 TCP/IP 五层具体做了什么,其他请求类似,没有详细列出

 

顺便说一下,OSI 分为 7 层,一般的,我们使用 TCP/IP 的五层模型:

 

 

在这一过程中服务器究竟担当什么角色呢?

其实很简单,就是做一个资源的管理者、网络请求的响应者、网络数据的转发者,将服务器上的网络资源返回请求者,或者将请求转发给对应的 CGI 程序,他只是作为一个保证数据传输的稳定性的关口,而无需关心应用数据的实际内容

 

欢迎关注微信公众号,以技术为主,涉及历史、人文等多领域的学习与感悟,每周三到七篇推文,只有全部原创,只有干货没有鸡汤

 






技术帖      网络      network      ip      osi      tcp      服务器      技术分享      server      dns      http     


京ICP备15018585号