一次网络请求的全部过程
2015-02-08 12:03:08 最后更新: 2015-02-08 12:03:08 访问数量:2373
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 程序,他只是作为一个保证数据传输的稳定性的关口,而无需关心应用数据的实际内容
欢迎关注微信公众号,以技术为主,涉及历史、人文等多领域的学习与感悟,每周三到七篇推文,只有全部原创,只有干货没有鸡汤