python自己动手开发一个 Web 服务器(一)(转载)
本帖最后由 小云子墨 于 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语言,你应该也可以从代码和下面的解释中理解相关的概念:
**** Hidden Message *****
将上面的代码保存为webserver1.py,或者直接从我的Github仓库下载,然后通过命令行运行该文件:
$ python webserver1.py
Serving HTTP on port 8888 …
接下来,在浏览器的地址栏输入这个链接:http://localhost:8888/hello,然后按下回车键,你就会看见神奇的一幕。在浏览器中,应该会出现“Hello, World!”这句话:
后面的求我我再转载,你们简直对新鱼友一点都不友好 一群刁民看了不回复,宝宝为了顶置也是拼了 {:10_297:}不错哦,鱼油大多是新人,简直太高端, 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,浏览器打开就这样了哇{:10_266:} 这个收藏了。 感谢楼主分享
这个收藏了。 学习一下 小火木 发表于 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 可以去板块求助呀,宝宝这种萌新好赚鱼币 厉害 好的 先看看 学习!
学习一下 不错啊 可以的 可以的 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 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 ...
这是啥情况啊 赚点鱼币,好好学习