运行自己写的web服务器代码时报错socket.error: [

作者: 皮特曼 | 来源:发表于2016-12-22 16:24 被阅读2431次

           最近开始学习python编程,今天看到实现一个简单的Web服务器,就将所学的知识与遇到的问题记录于此。

            要建立一个Web服务器,必须建立一个基本的服务器和一个”处理程序“,处理程序是一些处理主要“Web服务”的简单软件。它用于处理客户端请求,并返回适当的文件,包括静态文件和动态文件。

           处理程序的复杂性决定了web服务器的复杂程度。python标准库提供了3种不同的处理程序:

    1.BaseHTTPRequestHandler,它可以在BaseHTTPServer模块中找到。除了获得客户端请求外,没有实现其他的处理工作,因此必须自己完成其他的任务处理。

    2.SimpleHTTPServer模块中的SimpleHTTPRequestHandler,它建立在BaseHTTPRequestHandler的基础上,可以实现标准的GET和HEAD请求

    3.CGIHTTPServer模块中的CGIHTTPRequestHandler处理程序,这个处理程序可以获取SimpleHTTPRequestHandler,并添加了对POST请求的支持。可以调用CGI脚本完成请求处理过程,也可以将声称的HTML脚本返回给客户端。

    接下来展示如何使用BaseHTTPRequestHandler来实现对客户端GET请求的处理

    使用BaseHTTPRequestHandler处理客户端GET请求

    开始运行程序,输入命令python src/myhttpd.py,发现程序报如下错误,

    上网查了相关资料,见有人说在unix环境下,小于1024的端口不能被普通用户绑定,只能由有root权限的用户来进行绑定,可是使用sudo命令也并不起作用,所以需要绑定一个大于1024的端口,最终问题得到解决。

    本文参考链接socket.error: [Errno 13] Permission denied

    相关文章

      网友评论

        本文标题:运行自己写的web服务器代码时报错socket.error: [

        本文链接:https://www.haomeiwen.com/subject/pschvttx.html