鱼C论坛

 找回密码
 立即注册
查看: 13380|回复: 136

[技术交流] python自己动手开发一个 Web 服务器(一)(转载)

  [复制链接]
发表于 2016-5-18 16:56:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 小云子墨 于 2016-5-19 14:05 编辑

编译自:http://ruslanspivak.com/lsbaws-part1/作者: Ruslan           灵魂画手 楼主怀疑这个是一个小学生写的
转载自:https://linux.cn/article-6815-1.html
本文地址:https://linux.cn/article-6815-1.html
《自己动手开发 Web 服务器》会分为三个部分,将介绍如何从头开发一个简易 Web 服务器。我们这就开始吧。

首先,到底什么是 Web 服务器?
简而言之,它是在物理服务器上搭建的一个网络连接服务器(networking server),永久地等待客户端发送请求。当服务器收到请求之后,它会生成响应并将其返回至客户端。客户端与服务器之间的通信,是以HTTP协议进行的。客户端可以是浏览器,也可以是任何支持HTTP协议的软件。

那么, Web 服务器的简单实现形式会是怎样的呢?下面是我对此的理解。示例代码使用Python语言实现,不过即使你不懂Python语言,你应该也可以从代码和下面的解释中理解相关的概念:
游客,如果您要查看本帖隐藏内容请回复

将上面的代码保存为webserver1.py,或者直接从我的Github仓库下载,然后通过命令行运行该文件:
$ python webserver1.py
Serving HTTP on port 8888 …
接下来,在浏览器的地址栏输入这个链接:http://localhost:8888/hello,然后按下回车键,你就会看见神奇的一幕。在浏览器中,应该会出现“Hello, World!”这句话:
后面的求我我再转载,你们简直对新鱼友一点都不友好
004934rxmo2s8x28ryfx02.png
00web.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-5-18 17:57:38 | 显示全部楼层
一群刁民看了不回复,宝宝为了顶置也是拼了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-18 21:36:39 | 显示全部楼层
不错哦,鱼油大多是新人,简直太高端,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-18 21:40:03 | 显示全部楼层
Serving HTTP on port 8888 ...
b'GET /favicon.ico HTTP/1.1\r\nHost: localhost:8888\r\nConnection: Keep-Alive\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 SE 2.X MetaSr 1.0\r\nAccept-Encoding: gzip, deflate\r\n\r\n'
Traceback (most recent call last):
  File "E:/py/网络服务.py", line 16, in <module>
    client_connection.sendall(http_response)
TypeError: a bytes-like object is required, not 'str'


用的py3.5,浏览器打开就这样了哇
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-19 08:52:51 | 显示全部楼层
这个收藏了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-19 11:25:28 | 显示全部楼层
感谢楼主分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-19 14:59:13 | 显示全部楼层

这个收藏了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-19 15:19:17 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-19 17:08:20 | 显示全部楼层
小火木 发表于 2016-5-18 21:40
Serving HTTP on port 8888 ...
b'GET /favicon.ico HTTP/1.1\r\nHost: localhost:8888\r\nConnection: Ke ...

VIP 可以去板块求助呀,宝宝这种萌新好赚鱼币
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-19 17:54:25 | 显示全部楼层
厉害
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-5-19 18:16:01 | 显示全部楼层
好的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-5-19 22:59:30 | 显示全部楼层
先看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-20 14:00:10 | 显示全部楼层
学习!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-5-21 09:31:39 | 显示全部楼层

学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-21 09:55:54 | 显示全部楼层
不错啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-21 09:56:54 | 显示全部楼层
可以的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-21 10:01:32 | 显示全部楼层
可以的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-21 10:03:54 | 显示全部楼层
C:\Python33\python.exe D:/untitled/服务器.py
Serving HTTP on port 8888 ...
b'GET /hello HTTP/1.1\r\nHost: localhost:8888\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3\r\nAccept-Encoding: gzip, deflate\r\nConnection: keep-alive\r\n\r\n'
Traceback (most recent call last):
  File "D:/untitled/服务器.py", line 16, in <module>
    client_connection.sendall(http_response)
TypeError: 'str' does not support the buffer interface
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-21 10:05:47 | 显示全部楼层
whuer_py 发表于 2016-5-21 10:03
C:\Python33\python.exe D:/untitled/服务器.py
Serving HTTP on port 8888 ...
b'GET /hello HTTP/1.1\r ...

这是啥情况啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-21 11:16:12 | 显示全部楼层
赚点鱼币,好好学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 18:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表