涨姿势自己写一个Web服务器

有天一个女人出去散步,她经过建筑工地时看到三个人正在干活。她上去问第一个人,你在干什么呢?第一个人觉得这问题很恼人,厉声道,你看不到我在砌砖头吗?不甚满意的女人又问第二个人他在做什么。第二个人答道,我在砌一道砖墙。然后他看了下第一个人,喊道,嘿,你超过墙的长度了,把最后一块砖拿下来。女人还是不满意这个答案,他问第三个人。这个人呢,他一边看着天一边跟她说,我在建这世上从未有过的大教堂。在他抬头望天的时候,另两个人在为砖头的对错争吵不休。这人转向那两人说,伙计们,别为那一块砖当心了。这是个内墙,它会被粉刷没人能看到砖头的。把它放到另一层去吧。

这个故事的寓意是,当你知道整个系统,了解不同组件如何相互配合(砖,墙壁,教堂),你能快速找到和快速解决问题(砖)。

它对你从头开始建web服务器有什么启示呢?

我相信要成为好的开发者,你必须对日常使用的软件底层系统有更好的理解,这包括编程语言,编译器和解释器,数据库和操作系统,web服务器和web框架。而为了能更好更深的理解这些系统,你必须从头开始重建他们,从一砖一瓦开始。

老夫子有言曰:

我听见了,我就忘了;

我看见了,我就记得了;

我做过了,我就理解了。

希望你同意这点,我们重新建构软件系统是学习他们怎样运作的好方法。

在这个分为三部分的系列中,我将展示给你怎样搭建你自己的web服务器。我们开始吧。

简而言之,这是一个运行在物理服务器上的网络服务器,它等待客户端发送的请求。当它收到一个请求,它会生成一个回复并传回到客户端。一个客户端和服务器的通信时通过HTTP协议实现。客户端可以是你的浏览器或任何其他应用HTTP的软件。

一个简单的web服务器是什么样呢?这是我给出的答案。这个例子是用Python的,但即使你不懂Python也能通过下面的代码和解释理解这些概念。

将上面代码保存为’websever1.py’,或者直接在GitHub上下载,然后想下面那样在命令行中运行

$pythonwebserver1.py

ServingHTTPonport…

现在在浏览器地址栏输入







































得了白癜风能治好吗
白癜风费用



转载请注明:http://www.guyukameng.com/html/9643.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了