http、https、websocket

概念解析

HTTP(超文本传输协议)是一种无状态的请求/响应协议,通常用于客户端(如Web浏览器)和服务器之间的通信。客户端发送一个请求到服务器,然后服务器返回一个响应。HTTPS是HTTP的安全版本,它在HTTP的基础上通过SSL/TLS提供了数据加密。

WebSocket协议提供了在客户端和服务器之间的持久连接上进行全双工通信的能力。这意味着服务器可以在任何时候发送消息给客户端,而不需要客户端先发起请求,这对于需要实时更新的应用程序(如在线游戏、聊天应用等)非常有用。

要运行这些示例,请确保你已经安装了必要的库:

bash 复制代码
pip install requests websocket-client

HTTP 示例程序

这个程序将发送一个GET请求到 `httpbin.org`,这是一个用于测试HTTP请求和响应的服务。

python 复制代码
import requests

def http_get_example():
    url = 'https://httpbin.org/get'
    response = requests.get(url)
    print("HTTP GET Response:")
    print(response.json())  # 打印JSON响应的内容

# 运行HTTP示例
http_get_example()

HTTPS 示例程序

HTTPS与HTTP在代码层面上几乎是相同的,`requests` 库会自动处理HTTPS连接的加密。这里我们使用相同的服务,但是通过HTTPS进行通信。

python 复制代码
def https_get_example():
    url = 'https://httpbin.org/get'
    response = requests.get(url)
    print("HTTPS GET Response:")
    print(response.json())  # 打印JSON响应的内容

# 运行HTTPS示例
https_get_example()

WebSocket 示例程序

这个程序将连接到 `websocket.org` 的测试服务器,并发送一个消息,然后接收回声消息。

python 复制代码
import websocket
import _thread
import time

def on_message(ws, message):
    print("WebSocket Message Received:")
    print(message)
    ws.close()

def on_error(ws, error):
    print("WebSocket Error:", error)

def on_close(ws, close_status_code, close_msg):
    print("WebSocket Connection Closed")

def on_open(ws):
    def run(*args):
        time.sleep(1)
        ws.send("Hello, WebSocket!")
    _thread.start_new_thread(run, ())

def websocket_example():
    ws = websocket.WebSocketApp("wss://echo.websocket.org",
                                on_open=on_open,
                                on_message=on_message,
                                on_error=on_error,
                                on_close=on_close)
    ws.run_forever()

# 运行WebSocket示例
websocket_example()

在这些示例中,HTTP和HTTPS程序演示了如何使用请求/响应模型进行通信,而WebSocket程序演示了如何建立持久的全双工通信连接。

然后,将上述代码片段保存到一个`.py`文件中,并运行它。每个函数将演示其对应协议的核心通信功能。

相关推荐
黑桃小柒71 天前
小,最终显示为TCP WINDOW FULL,TCP ZeroWindow。 仔细分析了下LWIP源码,还以为是内存管理出了问题,跟 ...
网络·网络协议·tcp/ip
网络研究院1 天前
LastPass 发布紧急安全预警:针对主密码的活跃网络钓鱼攻击正在进行中
网络·安全·黑客·攻击·漏洞·风险·钓鱼
便利店10241 天前
TCP 为什么有时故意跑不快?拥塞控制与滑动窗口一次讲清
服务器·网络协议·tcp·拥塞控制
向夏威夷 梦断明暄1 天前
【高效管理token成本】OpenClaw精细化分库管理memory以减少token成本的方案的可行性研究
网络
酷可达拉斯1 天前
Linux操作系统-免密登录远程操作系统
linux·运维·服务器·网络·云计算
aixingkong9211 天前
AI超节点Scale Up域总线各层优化设计
linux·服务器·网络
组合缺一1 天前
Solon 的 10 种 HTTP 服务器:改一行依赖,换一个引擎
java·服务器·网络协议·http·solon
瓦学妹1 天前
为什么您的AI总是显示“不支持的区域”?如何解决?
大数据·网络·人工智能
优化Henry1 天前
5G站点软件错误告警与资源激活超时两类典型告警分析与处理
网络·笔记·学习·5g·信息与通信
coward911 天前
千兆以太网卡(Ethernet)驱动初始化完成,但是无法udhcpc获取ip
服务器·网络·嵌入式硬件·tcp/ip