Python学习---基于TCP的模拟浏览器请求响应案例

模拟浏览器请求web服务器的网页过程,使用TCP实现http协议

# 1 、导入模块
import socket

# 2 、创建套接字
tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 3·建立连接
tcp_client_socket.connect(("www.icoderi.com", 80))
# 4﹑拼接请求协议
# 4.1请求行
request_line = "GET / HTTP/1.1\r\n"
# 4.2请求头
request_header = "Host:www.icoderi.com\r\n"
# 4.3请求空行
request_blank = "\r\n"
request_data = request_line + request_header + request_blank
# 5﹑发送请求协议
tcp_client_socket.send(request_data.encode())
# 6·接收服务器响应内容(4kb)
recv_data = tcp_client_socket.recv(4096)
# 7﹑保存内容
recv_text = recv_data.decode()
# 7.1截取字符串取<html>
loc = recv_text.find("\r\n\r\n")
html_data = recv_text[loc + 4:]
print(html_data)
# 7.2保存文本内容
with open("index.html", "w") as file:
    file.write(html_data)
# 8·关闭连接
tcp_client_socket.close()

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-25 19:56:24       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-25 19:56:24       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-25 19:56:24       82 阅读
  4. Python语言-面向对象

    2024-05-25 19:56:24       91 阅读

热门阅读

  1. 【Python】单例模式和工厂模式

    2024-05-25 19:56:24       34 阅读
  2. 如何选择适合自己需求的扬州独立服务器方案?

    2024-05-25 19:56:24       30 阅读
  3. 什么是分布式?为什么需要分布式?

    2024-05-25 19:56:24       31 阅读
  4. 07网络编程及网络基础知识

    2024-05-25 19:56:24       34 阅读
  5. 货币系统一(DP[i][j]二维)

    2024-05-25 19:56:24       27 阅读
  6. 物理服务器主要运用在哪些场景当中?

    2024-05-25 19:56:24       30 阅读
  7. SOLC install 中的问题

    2024-05-25 19:56:24       33 阅读