错误的请求套接字python

亚历山大·加西亚

我正在使用套接字构建一个简单的“ Web浏览器”,但是一开始却陷入困境,请求结果不好,这是我的代码:

import socket
mysocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
URI = 'data.pr4e.org'
mysocket.connect((URI, 80))
cmd = "GET http://{0}/romeo.txt HTTP/1.0\n\n".format(URI).encode()
mysocket.send(cmd)  # send a request

while True:
    data = mysocket.recv(512)  # recieve 512 bites at time
    # if there is no more information to recive, then, close the loop
    if (len(data) < 1):
        break
    print(data.decode())
    pass

mysocket.close()  # close connection

这是输出

HTTP/1.1 400 Bad Request
Date: Mon, 15 Feb 2021 14:36:06 GMT
Server: Apache/2.4.18 (Ubuntu)
Content-Length: 308
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</
h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.4.18 (Ubuntu) Server at do1.dr-chuck.com Port 80</address>

我做错了什么?另外,我尝试用facebook.com和youtube.com替换data.pr4e.org,并得到以下输出:

HTTP/1.1 301 Moved Permanently
Vary: Accept-Encoding
Location: https://facebook.com/
Content-Type: text/html; charset="utf-8"
X-FB-Debug: LPmWQm0VVptVpi8QX8/SxymrJg9ZoL/mL+W+G4pZA4HGj5WI5YIG1s8sgqwp6TIleGvUg3U1eDNEhGoCsaJG5g==
Date: Mon, 15 Feb 2021 14:52:43 GMT
Alt-Svc: h3-29=":443"; ma=3600,h3-27=":443"; ma=3600
Connection: close
Content-Length: 0

谢谢你

Serge Ballesta

这里的问题只是\n服务器预期\r\n行尾使用的。

无论如何,当您直接连接到HTTP主机时,您不应在请求行中放入完整的URI。在HTTP 1.0一致性点上会更好:

cmd = "GET /romeo.txt HTTP/1.0\r\n\r\n".encode()

但是,如果服务器可以接受一台以上的虚拟服务器,则应在主机标头中传递名称:

cmd = "GET /romeo.txt HTTP/1.0\r\nHost: {}\r\n\r\n".format(URI).encode()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

python套接字错误请求400

来自分类Dev

python套接字错误请求400

来自分类Dev

带套接字的Python GET请求-400错误的请求

来自分类Dev

套接字错误-python

来自分类Dev

套接字错误-python

来自分类Dev

请求期间出现“套接字挂断”错误

来自分类Dev

python套接字错误:无法在套接字上选择

来自分类Dev

Python:如何彻底关闭套接字以避免“无法分配请求的地址”错误(高频)

来自分类Dev

带套接字的python公共IP(错误:无法分配请求的地址)

来自分类Dev

从套接字错误python导入模块

来自分类Dev

Python套接字错误没有35

来自分类Dev

故意创建套接字错误/ Python脚本

来自分类Dev

python urllib收到[Errno套接字错误]

来自分类Dev

Python套接字输出错误的参数

来自分类Dev

Laravel Websockets导致python套接字错误

来自分类Dev

Python SimpleXMLRPCServer:套接字错误,连接被拒绝

来自分类Dev

带套接字的Python文件传输错误

来自分类Dev

对外部API的https请求上的套接字挂断错误?

来自分类Dev

套接字挂断错误与多个http.get请求

来自分类Dev

Java套接字收到HTTP / 1.1 400错误请求

来自分类Dev

请求计数的增加以“错误:套接字挂断”告终

来自分类Dev

python套接字如何使用相同的套接字连接正确重定向http / s请求?

来自分类Dev

python套接字客户端程序2(获取请求)

来自分类Dev

使用套接字的HTTP请求

来自分类Dev

boot2docker shellinit命令以错误“错误:请求套接字:退出状态255”而结束

来自分类Dev

错误:传输端点未连接(Python套接字)

来自分类Dev

Python中的简单套接字编程:错误的服务器

来自分类Dev

Python套接字,属性错误str没有属性加密

来自分类Dev

python中带有套接字的AES加密错误

Related 相关文章

  1. 1

    python套接字错误请求400

  2. 2

    python套接字错误请求400

  3. 3

    带套接字的Python GET请求-400错误的请求

  4. 4

    套接字错误-python

  5. 5

    套接字错误-python

  6. 6

    请求期间出现“套接字挂断”错误

  7. 7

    python套接字错误:无法在套接字上选择

  8. 8

    Python:如何彻底关闭套接字以避免“无法分配请求的地址”错误(高频)

  9. 9

    带套接字的python公共IP(错误:无法分配请求的地址)

  10. 10

    从套接字错误python导入模块

  11. 11

    Python套接字错误没有35

  12. 12

    故意创建套接字错误/ Python脚本

  13. 13

    python urllib收到[Errno套接字错误]

  14. 14

    Python套接字输出错误的参数

  15. 15

    Laravel Websockets导致python套接字错误

  16. 16

    Python SimpleXMLRPCServer:套接字错误,连接被拒绝

  17. 17

    带套接字的Python文件传输错误

  18. 18

    对外部API的https请求上的套接字挂断错误?

  19. 19

    套接字挂断错误与多个http.get请求

  20. 20

    Java套接字收到HTTP / 1.1 400错误请求

  21. 21

    请求计数的增加以“错误:套接字挂断”告终

  22. 22

    python套接字如何使用相同的套接字连接正确重定向http / s请求?

  23. 23

    python套接字客户端程序2(获取请求)

  24. 24

    使用套接字的HTTP请求

  25. 25

    boot2docker shellinit命令以错误“错误:请求套接字:退出状态255”而结束

  26. 26

    错误:传输端点未连接(Python套接字)

  27. 27

    Python中的简单套接字编程:错误的服务器

  28. 28

    Python套接字,属性错误str没有属性加密

  29. 29

    python中带有套接字的AES加密错误

热门标签

归档