基本上,我正在尝试从头开始用 python 创建一个小型网络服务器(只是为了学习),但我在解码标头时遇到了问题。代码归结为以下内容(我已将其简化为仅与问题相关的代码):
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(('', 80))
sock.listen(1)
while True:
conn, addr = sock.accept()
print(addr[0])
request = conn.recv(2048).decode('utf-8')
headers = (
'HTTP/1.0 200 OK',
'Content-Type: text/html'
)
content = 'success'
response = "\n".join(headers) + "\r\n\r\n" + content
conn.sendall(bytes(response, 'UTF-8'))
conn.close()
Run Code Online (Sandbox Code Playgroud)
我安装了 Firefox 的插件 HttpRequester 来摆弄我当前的内容并尝试附加文件,这导致了以下错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x90 in position 386: invalid start byte
我该如何解决这个问题?我应该将其包装在 try: 中并忽略导致此类异常的请求吗?