小云子墨 发表于 2016-5-18 16:56:15

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!”这句话:
后面的求我我再转载,你们简直对新鱼友一点都不友好

小云子墨 发表于 2016-5-18 17:57:38

一群刁民看了不回复,宝宝为了顶置也是拼了

小火木 发表于 2016-5-18 21:36:39

{:10_297:}不错哦,鱼油大多是新人,简直太高端,

小火木 发表于 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,浏览器打开就这样了哇{:10_266:}

牧舟 发表于 2016-5-19 08:52:51

这个收藏了。

柳下怀 发表于 2016-5-19 11:25:28

感谢楼主分享

lxh661314 发表于 2016-5-19 14:59:13


这个收藏了。

WylLy 发表于 2016-5-19 15:19:17

学习一下

小云子墨 发表于 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 可以去板块求助呀,宝宝这种萌新好赚鱼币

lanbingwxf 发表于 2016-5-19 17:54:25

厉害

小乌贼da鱿鱼 发表于 2016-5-19 18:16:01

好的

漫步是一种心情 发表于 2016-5-19 22:59:30

先看看

Andriy 发表于 2016-5-20 14:00:10

学习!

Hewee 发表于 2016-5-21 09:31:39


学习一下

whuer_py 发表于 2016-5-21 09:55:54

不错啊

whuer_py 发表于 2016-5-21 09:56:54

可以的

whuer_py 发表于 2016-5-21 10:01:32

可以的

whuer_py 发表于 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

whuer_py 发表于 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 ...

这是啥情况啊

Raysnake 发表于 2016-5-21 11:16:12

赚点鱼币,好好学习
页: [1] 2 3 4 5 6 7
查看完整版本: python自己动手开发一个 Web 服务器(一)(转载)