cfadmin - 编写高性能服务端、客户端实例(2)

本文深入介绍了HTTP协议,包括其传输过程、协议模型和交互流程。通过实例代码展示了如何在 Lua 中编写服务器和客户端,实现数据的收发。在代码解析部分,详细解释了头部协议的处理和请求实体的读取。文章最后提到,将在后续章节进行性能测试。
摘要由CSDN通过智能技术生成

阅读本文需要读者至少有C/C++网络编程基础, 并且了解基本的Socket API是如何使用的.

同时需要读者至少使用过cfadmin框架、并且能熟练使用内置库来完成简单的业务逻辑编写.

对本文有兴趣的同学也可以从官网文档来了解更多关于框架的更多使用方法.

数据的传输

上一章节笔者与大家一起学会了如何建立两端连接, 本章节开始我们将学会如何实现最简单的HTTP交互协议.

这个作为大家最熟悉的协议, 它的全称是: Hyper Text Transfer Protocol - 超文本传输协议.

它构建并运行在传输层(TCP)之上属于应用层协议, 同时请求->响应的模型让Socket工作在半双工模式下.

HTTP经过发展从最初的HTTP/0.9版本到现在成熟的HTTP/2, 更有已经在使用的HTTP/3非完善的标准规范.

由于篇幅原因, 笔者仅介绍HTTP/1.1的子集实现与测试. 对于HTTP协议的发展历程可以在阅读本文后自行查阅.

协议模型介绍

HTTP协议的交互协议实现是明文(可见字符)的, 也正是由于可读性较好开发者可以很轻松就能学会.

客户端的请求协议组成:

{
   METHOD}空格{
   URI}空格HTTP/{
   VERSION}\r\n
{
   NAME}:空格{
   VALUE}\r\n
{
   NAME}:空格{
   VALUE}\r\n
{
   NAME}:空格{
   VALUE}\r\n
\r\n\r\n
{
   BODY}

服务端的响应协议组成:

HTTP/{
   VERSION}空格{
   CODE}空格{
   MESSAGE}\r\n
{
   NAME}:空格{
   VALUE}\r\n
{
   NAME}:空格{
   VALUE}\r\n
{
   NAME}:空格{
   VALUE}\r\n
\r\n\r\n
{
   BODY}

下面为大家简单解释一下协议:

  • METHOD - 表示请求使用的方法, 大家打开网页最常见到的是GETPOST.

  • URL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值