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);
该函数确保不会超出缓冲区边界,是推荐使用的字符串格式化写入方式