返回顶部
首页 > 资讯 > 后端开发 > Python >Python socket怎么解析HTTP请求内容
  • 175
分享到

Python socket怎么解析HTTP请求内容

2023-06-29 04:06:54 175人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容主要讲解“python Socket怎么解析Http请求内容”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python socket怎么解析HTTP请求内容”吧!so

本篇内容主要讲解“python Socket怎么解析Http请求内容”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习Python socket怎么解析HTTP请求内容”吧!

    socket解析HTTP请求内容

    思路

    1. 解析HTTP请求的头部

    HTTP请求头部的结束符行为"\r\n",可以按行读取HTTP请求头的内容,如果读到一行为"\r\n",说明HTTP请求头结束。

    2. 请求头里面含有Content-Length参数

    如果HTTP请求里面有Content-Length参数,说明HTTP请求的内容大小是确定的,请求直接读取Content-Length的值,然后读取相应字节的的内容即可。

    3. 请求头里面含有Transfer-Encoding: chunked 参数

    如果HTTP请求里面有Transfer-Encoding参数,说明HTTP请求的内容大小是不确定的,这种内容的结束符是"0\r\n\r\n",因此可以按行读取HTTP请求的内容部分,如果连续读到"0\r\n"和"\r\n"说明内容读取完毕。

    代码实现

    代码中: self._file 代表的是socket.makefile() 

     def get_http_content(self):        content_length = 0        transfer_encoding = False        while True:            req_line = self._file.readline()            req_line = str(req_line, "utf-8")             # 遇到http头结束符            # 读取http内容            if req_line == "\r\n":                if content_length != 0:                    content = self._file.read(content_length)                    content = str(content, "utf-8")                    self._content = content                    return None                 if transfer_encoding:                    content = ""                    self._file.readline()                    while True:                        line = self._file.readline()                        line = str(line, "utf-8")                        if line == "0\r\n":                            sub_line = self._file.readline()                            sub_line = str(sub_line, "utf-8")                            if sub_line == "\r\n":                                self._content = content                                return None                        else:                            content += line                            continue                    self._content = False             # 头文件没有结束            # 并且没有找到关于内容大小的字段            else:                if content_length == 0 and transfer_encoding is False:                    Words = req_line.split()                    if words[0] == "Content-Length:":                        content_length = int(words[1])                    if words[0] == "Transfer-Encoding:":                        transfer_encoding = True             self._content = False

    socket 模拟http请求

    # coding: utf-8import socketfrom urllib.parse import urlparsedef get_url(url):    url = urlparse(url)    host = url.netloc    path = url.path    if path == "":        path = "/"    # 建立 socket 连接    client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)    client.connect((host, 80))    client.send("GET {} HTTP/1.1\r\nHost:{}\r\nConnection:close\r\n\r\n".fORMat(path, host).encode("utf-8"))    data = b""    while True:        d = client.recv(1024)        if d:            data += d        else:            break    data = data.decode("utf-8")    html_data = data.split("\r\n\r\n")[1]    print(html_data)    client.close()    passif __name__ == '__main__':    get_url("http://www.baidu.com")

    到此,相信大家对“Python socket怎么解析HTTP请求内容”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

    --结束END--

    本文标题: Python socket怎么解析HTTP请求内容

    本文链接: https://lsjlt.com/news/322405.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • Python socket怎么解析HTTP请求内容
      本篇内容主要讲解“Python socket怎么解析HTTP请求内容”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python socket怎么解析HTTP请求内容”吧!so...
      99+
      2023-06-29
    • Python socket如何解析HTTP请求内容
      目录socket解析HTTP请求内容思路1. 解析HTTP请求的头部2. 请求头里面含有Content-Length参数3. 请求头里面含有Transfer-Encoding: ch...
      99+
      2024-04-02
    • c语言中怎么利用http请求解析表单内容
      本篇文章给大家分享的是有关c语言中怎么利用http请求解析表单内容,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。代码如下: #ifn...
      99+
      2024-04-02
    • 怎么用注解+RequestBodyAdvice实现http请求内容加解密方式
      这篇文章主要介绍“怎么用注解+RequestBodyAdvice实现http请求内容加解密方式”,在日常操作中,相信很多人在怎么用注解+RequestBodyAdvice实现http请求内容加解密方式问题上存在疑惑,小编查阅了各式资料,整理...
      99+
      2023-06-20
    • Python HTTP请求详解:发送、接收和解析网络请求
      在今天的网络世界中,HTTP 请求已成为必不可少的技术,它允许我们与服务器进行通信,获取数据并执行各种操作。Python 作为一门强大的编程语言,提供了丰富的库和工具,使得 HTTP 请求变得更加容易实现。了解并掌握 HTTP 请求的原理...
      99+
      2024-02-23
      Python HTTP 请求 发送请求 接收响应 解析响应
    • jmeter怎么获取请求内容
      要获取JMeter的请求内容,可以使用JMeter的HTTP取样器。以下是一些步骤: 在测试计划中添加一个线程组(Thread G...
      99+
      2023-10-26
      jmeter
    • 解析HTTP请求报文(GET、POST)
      目的: 一个WEB服务器需要解析客户端(浏览器)发来的请求,两种常见的请求方式是GET和POST。 GET的请求格式: GET请求没有请求体只有请求头GET请求的请求参数放在URL后加上一个""的后面,参数以key=value的形式传递,参...
      99+
      2023-09-02
      http 网络协议 c++ mysql
    • 使用注解+RequestBodyAdvice实现http请求内容加解密方式
      注解主要用来指定那些需要加解密的controller方法 实现比较简单 @Target({ElementType.METHOD}) @Retention(RetentionPol...
      99+
      2024-04-02
    • Python Http发送请求怎么实现
      本篇内容介绍了“Python Http发送请求怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!浅析requests在不借助其...
      99+
      2023-07-02
    • 解析C#网络编程中的Http请求
      本篇分享简单介绍C#中的Http请求,前几天帮朋友的项目封装ApiHelper,我粗糙的结果就如下,想想我真的是差的太远了。还有一位架构师也在封装这个Helper , 所以最后的结果...
      99+
      2024-04-02
    • JavaScript中怎么发出HTTP请求
      这篇文章给大家介绍JavaScript中怎么发出HTTP请求,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。XMLHttpRequestXMLHttpRequest对象可用于从Web服务...
      99+
      2024-04-02
    • C# winform请求http怎么实现
      本篇内容主要讲解“C# winform请求http怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C# winform请求http怎么实现”吧!一:.Net中有两个类 ...
      99+
      2023-07-02
    • feign怎么打印出http请求
      这篇文章主要讲解了“feign怎么打印出http请求”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“feign怎么打印出http请求”吧!feign打印出http请求用openfign依赖需要...
      99+
      2023-07-02
    • php怎么设置http请求体
      在PHP中,可以使用以下两种方法设置HTTP请求体:1. 使用`file_get_contents()`函数发送POST请求,并设置...
      99+
      2023-08-15
      php
    • nodejs中怎么实现一个http请求
      nodejs中怎么实现一个http请求,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。nodejs http请求相关总结通过no...
      99+
      2024-04-02
    • Qt怎么实现HTTP的Get/Post请求
      本文小编为大家详细介绍“Qt怎么实现HTTP的Get/Post请求”,内容详细,步骤清晰,细节处理妥当,希望这篇“Qt怎么实现HTTP的Get/Post请求”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。借助Qt的...
      99+
      2023-06-30
    • http请求怎么在spring boot中使用
      今天就跟大家聊聊有关http请求怎么在spring boot中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。首先是经过封装:一:初始化httpclientprivate ...
      99+
      2023-05-30
      springboot http
    • Netty4之怎么实现HTTP请求、响应
      本文小编为大家详细介绍“Netty4之怎么实现HTTP请求、响应”,内容详细,步骤清晰,细节处理妥当,希望这篇“Netty4之怎么实现HTTP请求、响应”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.Netty...
      99+
      2023-07-05
    • 使用feign发送http请求解析报错的问题
      目录错误如下错误原因解决方案一解决方案二错误2错误如下 发送请求开始 ----- [ChannelFeign#formRecog] ---> END HTTP (304117-...
      99+
      2024-04-02
    • Python HTTP请求的常见错误及解决方法
      错误 404:未找到资源 错误 404 是最常见的HTTP错误之一,表示服务器无法找到请求的资源。这可能是由于以下原因造成的: 请求的URL不正确。 请求的资源已被删除或移动。 服务器配置错误。 要解决此错误,您需要检查请求的U...
      99+
      2024-02-23
      Python HTTP请求 错误 解决方法
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作