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

       最近开始学习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请求的处理


运行自己写的web服务器代码时报错socket.error: [Errno 13] Permission denied_第1张图片
使用BaseHTTPRequestHandler处理客户端GET请求

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

运行自己写的web服务器代码时报错socket.error: [Errno 13] Permission denied_第2张图片

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


运行自己写的web服务器代码时报错socket.error: [Errno 13] Permission denied_第3张图片

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

你可能感兴趣的:(运行自己写的web服务器代码时报错socket.error: [Errno 13] Permission denied)