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`文件中,并运行它。每个函数将演示其对应协议的核心通信功能。

相关推荐
Casual10 分钟前
【网络基础进阶】:看懂子网划分与 VLAN
开发语言·网络·php
2401_8685347844 分钟前
第7章 网络环境规划:综合篇考点梳理
网络·安全
mengge.cloud1 小时前
网络技术基础小白教程
linux·服务器·网络·云计算
2501_915106321 小时前
安卓抓包软件2026,免证书抓包 应用层抓包 代理抓包全解析
网络协议·计算机网络·网络安全·ios·adb·https·udp
坐吃山猪1 小时前
【多线程】ThreadPool线程池参数说明
java·网络
Neighbor_OldY2 小时前
云上VPC流日志与网络流量安全分析实战:异常流量、横向移动、C2外连与恶意IP的发现与处置
网络协议·tcp/ip·安全
上海云盾-小余3 小时前
分层防护思路:WAF 应用防护与 TCP 底层防护如何协同
网络·网络协议·tcp/ip
tiantianuser3 小时前
NVME-oF IP 设计18 :如何进行多模块并行协同设计2
网络·nvme·rdma·高速传输·nvme-of
Asum1ta3 小时前
Kubernetes Namespace 命名空间管理实战:资源隔离、默认命名空间与常用命令
网络·容器·kubernetes
H_oRIZoN_4 小时前
Linux入门DAY35(TCP粘包问题与HTTP)
linux·tcp/ip·http