当前位置: 首页 > 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.xdnf.cn/news/1364635.html

相关文章:

  • 基于git的场景解决
  • DeepSeek 14B模型本地部署与预训练实现方案
  • 从零开始学习单片机15
  • MySQL常见报错分析及解决方案总结(1)---Can‘t connect to MySQL server on ‘localhost‘(10061)
  • 什么是事件循环(Event Loop)?浏览器和 Node.js 中的事件循环有什么区别?
  • 维度建模 —— 雪花模型 和 星型模型的优缺点
  • 冯·诺依曼架构:现代计算机的基石与瓶颈
  • Linux驱动开发笔记(七)——并发与竞争(下)——自旋锁信号量互斥体
  • k8s笔记03-常用操作命令
  • vite 项目创建、插件配置
  • JBL音响代理——河北正娱科技的声学精品工程
  • 智慧城市SaaS平台/交通设施运行监测系统之桥梁运行监测、城市道路塌陷风险运行监测系统架构内容
  • 网络编程--TCP/UDP Socket套接字
  • 验证码流程
  • 【AI解读源码系列】ant design mobile——Space间距
  • 京东API分类接口实战指南:获取各类商品信息
  • 【大模型本地运行与部署框架】Ollama的API交互
  • Spring拦截器中@Resource注入为null的问题
  • PAT乙级_1120 买地攻略_Python_AC解法_含疑难点
  • 6.3Element UI 的表单
  • 【python断言插件responses_validator使用】
  • 分布式系统与单机系统的优劣势对比
  • Reachability Query
  • Linux系统编程——进程 | 线程
  • 直播美颜SDK技术解析:人脸美型功能的算法原理与实现方案
  • TCP与HTTP协议以及爬虫
  • 如何在Debian服务器上设置Node.js日志轮转
  • cs61a中的递归小例子
  • 创建高效MCP客户端:多服务器环境解决方案指南
  • 决策树原理与 Sklearn 实战