python - 使用 python 发送 http header

标签 python html sockets client

我已经设置了一个小脚本,可以为客户端提供 html。

import socket

sock = socket.socket()
sock.bind(('', 8080))
sock.listen(5)
client, adress = sock.accept()


print "Incoming:", adress
print client.recv(1024)
print

client.send("Content-Type: text/html\n\n")
client.send('<html><body></body></html>')

print "Answering ..."
print "Finished."

import os
os.system("pause")

但它在浏览器中显示为纯文本。你能告诉我需要做什么吗?我只是无法在谷歌中找到对我有帮助的东西..

谢谢。

最佳答案

响应 header 应包含指示成功的响应代码。 在 Content-Type 行之前,添加:

client.send('HTTP/1.0 200 OK\r\n')

另外,为了让测试更显眼,在页面中放一些内容:

client.send('<html><body><h1>Hello World</body></html>')

发送响应后,关闭连接:

client.close()

sock.close()

正如其他张贴者所指出的,每行以 \r\n 而不是 \n 结束。

请问那些补充,我是能够运行成功的测试。在浏览器中,我输入了 localhost:8080

所有代码如下:

import socket

sock = socket.socket()
sock.bind(('', 8080))
sock.listen(5)
client, adress = sock.accept()

print "Incoming:", adress
print client.recv(1024)
print

client.send('HTTP/1.0 200 OK\r\n')
client.send("Content-Type: text/html\r\n\r\n")
client.send('<html><body><h1>Hello World</body></html>')
client.close()

print "Answering ..."
print "Finished."

sock.close()

关于python - 使用 python 发送 http header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8315209/

相关文章:

python - 转置自动创建的列表中的数据

python - 按用法对单词排序

html - 只是对 Soundcloud.com 中的标题感到好奇

javascript - 遍历表行 (tr) 并选择 JQuery 中没有特定类的行

python - AttributeError : module object has no attribute "Series". 代码在 iPython 中有效

javascript - CSS 拒绝在我的页面上显示。目录问题?网页包?

c# - 服务器/客户端未发送所有字节(TCP 套接字)

c# - 异步套接字客户端接收

sockets - 关闭套接字以避免 "connection reset by peer"的正确方法

python - spyder (python) 变量资源管理器不同的 View