一个奇怪的问题。我可以看到text_content。但我看不到pic_content,我不知道为什么。使用chrome有一个错误。“资源解释为图像,但转移MIME类型text / html:”我发现也许我的if else代码不起作用.pic必须是image / jpg可以输出..但我不知道为什么以及怎么做......
import socket
#Address
#httpq server
HOST = ''
PORT = 8000
#prepare HTTP response
#start line head and body
text_content = '''HTTP/1.x 200 OK
Content-Type: text/html
<html>
<head>
<title>WOW</titile>
</head>
<p>WOW,python server</p>
<img src="test.jpg/">
</html>
'''
#read picture ,put into HTTP format
f = open('test.jpg','rb')
pic_content = '''
HTTP/1.x 200 OK
Content-Type: image/jpg
'''
pic_content = pic_content + f.read()
f.close()
#cofigure socket
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((HOST,PORT))
#infinite loop,server forever
while True:
#3:maxinum number of requests waitting
s.listen(3)
conn, addr = s.accept()
request = conn.recv(1024)
method = request.split(' ')[0]
src = request.split(' ')[1]
#deal with GET method
if method =='GET':
#URL
if src =='/test.jpg':
content = pic_content
else:content = text_content
print 'Connected by',addr
print 'Request is:', request
conn.sendall(content)
#close connection
conn.close()
答案 0 :(得分:0)
您在HTTP标头和正文之间缺少空白行(Content-Type
之后)。
由于您已经记录了请求,因此您可以看到浏览器正在请求带有无关尾部斜杠的test.jpg/
。删除它,它的工作原理。