Python教程
Python 基础手册
Python 英语
Python 简介
Python 入门
Python 语法
Python 注释
Python 变量
Python 关键字
Python 快捷键
Python 数据类型
Python 布尔
Python 运算符
Python 占位符
Python If语句
Python For循环
Python While循环
Python 数字
Python 字符串
字符串 capitalize()
字符串 casefold()
字符串 center()
字符串 count()
字符串 encode()
字符串 endswith()
字符串 expandtabs()
字符串 find()
字符串 format()
字符串 format_map()
字符串 index()
字符串 isalnum()
字符串 isalpha()
字符串 isdecimal()
字符串 isdigit()
字符串 isidentifier()
字符串 islower()
字符串 isnumeric()
字符串 isprintable()
字符串 isspace()
字符串 istitle()
字符串 isupper()
字符串 join()
字符串 ljust()
字符串 lower()
字符串 lstrip()
字符串 maketrans()
字符串 partition()
字符串 replace()
字符串 rfind()
字符串 rindex()
字符串 rjust()
字符串 rpartition()
字符串 rsplit()
字符串 rstrip()
字符串 split()
字符串 splitlines()
字符串 startswith()
字符串 strip()
字符串 swapcase()
字符串 title()
字符串 translate()
字符串 upper()
字符串 zfill()
Python 列表
列表 append()
列表 clear()
列表 copy()
列表 count()
列表 extend()
列表 index()
列表 insert()
列表 pop()
列表 remove()
列表 reverse()
列表 sort()
Python 数组
Python 元组
元组 count()
元组 index()
Python 集合
集合 add()
集合 clear()
集合 copy()
集合 difference()
集合 difference_update()
集合 discard()
集合 intersection()
集合 intersection_update()
集合 isdisjoint()
集合 issubset()
集合 issuperset()
集合 pop()
集合 remove()
集合 symmetric_difference()
集合 symmetric_difference_update()
集合 union()
集合 update()
Python 字典
字典 clear()
字典 copy()
字典 fromkeys()
字典 get()
字典 items()
字典 keys()
字典 pop()
字典 popitem()
字典 setdefault()
字典 update()
字典 values()
Python 函数
内建函数 abs()
内建函数 all()
内建函数 any()
内建函数 ascii()
内建函数 bin()
内建函数 bool()
内建函数 bytearray()
内建函数 bytes()
内建函数 callable()
内建函数 chr()
内建函数 classmethod()
内建函数 compile()
内建函数 complex()
内建函数 delattr()
内建函数 dict()
内建函数 dir()
内建函数 divmod()
内建函数 enumerate()
内建函数 eval()
内建函数 exec()
内建函数 filter()
内建函数 float()
内建函数 format()
内建函数 frozenset()
内建函数 getattr()
内建函数 globals()
内建函数 hasattr()
内建函数 hash()
内建函数 help()
内建函数 hex()
内建函数 id()
内建函数 input()
内建函数 int()
内建函数 isinstance()
内建函数 issubclass()
内建函数 iter()
内建函数 len()
内建函数 list()
内建函数 locals()
内建函数 map()
内建函数 max()
内建函数 memoryview()
内建函数 min()
内建函数 next()
内建函数 object()
内建函数 oct()
内建函数 open()
内建函数 ord()
内建函数 pow()
内建函数 print()
内建函数 property()
内建函数 range()
内建函数 repr()
内建函数 reversed()
内建函数 round()
内建函数 set()
内建函数 setattr()
内建函数 slice()
内建函数 sorted()
内建函数 @staticmethod()
内建函数 str()
内建函数 sum()
内建函数 super()
内建函数 tuple()
内建函数 type()
内建函数 vars()
内建函数 zip()
Python 类和对象
Python 继承
Python 迭代器
Python 作用域
Python 模块
Python 日期
Python JSON
Python 正则表达式
Python PIP
Python Try Except
Python 命令行输入
Python 文件处理
文件处理 close()
文件处理 detach()
文件处理 fileno()
文件处理 flush()
文件处理 isatty()
文件处理 read()
文件处理 readable()
文件处理 readline()
文件处理 readlines()
文件处理 seek()
文件处理 seekable()
文件处理 tell()
文件处理 truncate()
文件处理 writeable()
文件处理 write()
文件处理 writelines()
Python 模块手册
Python 随机模块(Random)
Python OS模块
Python 请求模块(Requests)
Requests.delete()
Requests.get()
Requests.head()
Requests.post()
Python 数学模块(cmath)
Python math模块
Python 网络爬虫
HTTP 教程
HTTP/HTTPS 简介
HTTP 消息结构
HTTP 请求方法
HTTP 响应头信息
HTTP 状态码
Python 实例练习
练习001.算术运算
练习002.数字阶乘
练习003.计算面积
练习004.求取素数
练习005.计算平方
练习006.列表求和
练习007.数字偶数
练习008.列表删除
练习009.列表去重
练习010.列表排序
练习011.文件读写
练习012.计算分数
本文档使用 MrDoc 发布
-
+
首页
HTTP 消息结构
## HTTP 消息结构 HTTP 是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。 HTTP 消息是客户端和服务器之间通信的基础,它们由一系列的文本行组成,遵循特定的格式和结构。 HTTP消息分为两种类型:请求消息和响应消息。 一个 HTTP 客户端是一个应用程序(Web 浏览器或其他任何客户端),通过连接到服务器达到向服务器发送一个或多个 HTTP 的请求的目的。 一个 HTTP 服务器 同样也是一个应用程序(通常是一个 Web 服务,如 Nginx、Apache 服务器或 IIS 服务器等),通过接收客户端的请求并向客户端发送 HTTP 响应数据。  ## 客户端请求消息 客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成,下图给出了请求报文的一般格式。  1. 请求行(Request Line): 方法:如 GET、POST、PUT、DELETE等,指定要执行的操作。 请求 URI(统一资源标识符):请求的资源路径,通常包括主机名、端口号(如果非默认)、路径和查询字符串。 HTTP 版本:如 HTTP/1.1 或 HTTP/2。 请求行的格式示例:GET /index.html HTTP/1.1 1. 请求头(Request Headers): 包含了客户端环境信息、请求体的大小(如果有)、客户端支持的压缩类型等。 常见的请求头包括Host、User-Agent、Accept、Accept-Encoding、Content-Length等。 1. 空行: 请求头和请求体之间的分隔符,表示请求头的结束。 1. 请求体(可选): 在某些类型的HTTP请求(如 POST 和 PUT)中,请求体包含要发送给服务器的数据。 ## 服务器响应消息 HTTP 响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。  1. 状态行(Status Line): HTTP 版本:与请求消息中的版本相匹配。 状态码:三位数,表示请求的处理结果,如 200 表示成功,404 表示未找到资源。 状态信息:状态码的简短描述。 状态行的格式示例:HTTP/1.1 200 OK 2. 响应头(Response Headers): 包含了服务器环境信息、响应体的大小、服务器支持的压缩类型等。 常见的响应头包括Content-Type、Content-Length、Server、Set-Cookie等。 3. 空行: 响应头和响应体之间的分隔符,表示响应头的结束。 4. 响应体(可选): 包含服务器返回的数据,如请求的网页内容、图片、JSON数据等。 实例 下面实例是一点典型的使用 GET 来传递数据的实例: 客户端请求: ``` GET /index.html HTTP/1.1 Host: www.example.com User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Encoding: gzip, deflate Connection: keep-alive ``` 服务端响应: ``` HTTP/1.1 200 OK Date: Wed, 18 Apr 2024 12:00:00 GMT Server: Apache/2.4.1 (Unix) Last-Modified: Wed, 18 Apr 2024 11:00:00 GMT Content-Length: 12345 Content-Type: text/html; charset=UTF-8 <!DOCTYPE html> <html> <head> <title>Example Page</title> </head> <body> <h1>Hello, World!</h1> <!-- The rest of the HTML content --> </body> </html> ``` 在实际应用中,HTTP 消息可以包含更多的头字段,并且请求体和响应体的大小会根据传输的数据而变化。
admin
2025年4月21日 22:16
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码