当前位置: 首页 > news >正文

Linux下的软件编程——网络编程(http)

HTTP协议

位于应用层,超文本传输协议

1.万维网

www:万维网        万维网是一个大规模的,具有联机式的信息储藏所

(1)万维网服务器后台如何标记万维网数据       

URL:统一资源定位符

<协议>://<主机>:<端口>/<路径>

https://www.baidu.com/

百度主页

(2)万维网客户端与万维网服务器之前使用什么方式通信

HTTP:超文本传输协议

应用层协议,端口:80,备用端口:8080        基于传输层的TCP协议

1)HTTP通信过程

2)HTTP的报文格式

请求报文:从客户向服务器发送请求报文

响应报文:从服务端到客户的回答

由于HTTP是面向文本的,因此在报文中的每一个字段都是一些ASCII码串,因此各个字段的长度都是不确定的

Connection:keep-alive        ---->长连接:连接保持一定时间

Connection:close                ---->短连接:连接立马断开

(3)万维网客户端如何展示请求的数据        

HTML:超文本标记语言

2.printf相关函数及其用法

(1)fprintf函数

        fprintf函数用于将格式化字符串输出到指定的文件流

        与printf不同的是,fprintf的第一个参数是FILE*类型,表示输出的目标文件流

FILE *fp = fopen("output.txt", "w");
fprintf(fp, "写入文件的内容: %d\n", 456);
fclose(fp);

        该函数常用于将格式化数据写入文件或日志文件

(2)sprintf函数(不推荐使用)

        sprintf函数用于将格式化字符串写入一个字符数组      

int sprintf(char *str, const char *format, ...);

        该函数将格式化结果存储在 str 指向的字符数组中,但不检查缓冲区大小,因此存在缓冲区溢出的风险

char buffer[50
];
int value = 789
;
sprintf(buffer, "数值: %d"
, value);

        由于缺乏边界检查,建议使用更安全的替代函数 snprintf。

(3)snprintf函数

        snprintf 是 sprintf 的安全版本,它允许指定最大写入长度,以防止缓冲区溢出

int snprintf(char *str, size_t size, const char *format, ...);

        其中 size 参数指定最多写入的字符数(包括终止符 \0

char buffer[20
];
int value = 101112
;
snprintf(buffer, sizeof(buffer), "数值: %d"
, value);

        该函数确保不会超出缓冲区边界,是推荐使用的字符串格式化写入方式

http://www.dtcms.com/a/349544.html

相关文章:

  • C++14 到 C++20 全面解析:语言新特性、标准库演进与实战案例
  • 【二叉树 - LeetCode】617. 合并二叉树
  • [QMT量化交易小白入门]-八十三、8月因为通信行业,QMT平台ETF轮动策略年化达到了168.56%
  • 降本增效:基于 JavaScript 的 AI 编程 IDE 上下文压缩优化方案
  • CloudBase云开发MCP + CodeBuddy IDE:打造智能化全栈理财助手的完整实践
  • 本地生活新风口:“我店模式”入局正当时??
  • Web程序设计
  • 【前端安全】前端安全第一课:防止 XSS 和 CSRF 攻击的常见手法
  • 新型HTTP走私攻击技术使攻击者可注入恶意请求
  • 从0死磕全栈第1天:从写一个React的hello world开始
  • k8s笔记04-常用部署命令
  • 血缘元数据采集开放标准:OpenLineage Integrations Apache Spark Quickstart with Jupyter
  • SDC命令详解:使用set_timing_derate命令进行约束
  • 基于C语言实现的KV存储引擎(二)
  • ‌重塑培训架构,助力企业人才战略升级‌
  • 【C语言16天强化训练】从基础入门到进阶:Day 10
  • CPLD与FPGA
  • 《Password Guessing Using Large Language Models》——论文阅读
  • 企业级Java项目整合ELK日志收集分析可视化
  • [论文阅读]RQ-RAG: Learning to Refine Queries for Retrieval Augmented Generation
  • 大模型知识--MCP
  • 无人机芯片休眠模式解析
  • Linux系统的网络管理(一)
  • 血缘元数据采集开放标准:OpenLineage Integrations Apache Spark Main Concepts Installation
  • 05 开发环境和远程仓库Gitlab准备
  • 【spring进阶】spring应用内方法调用时长统计
  • 【数据结构】串——(一)
  • 36 NoSQL 注入
  • Docker 部署 GitLab 并开启 SSH 使用详解
  • 【Java后端】Java 多线程:从原理到实战,再到高频面试题