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

39.应用层HTTP协议(二)

HTTP请求和响应结构中的Content-Length字段

client和server,怎么保证自己读到的报文是完整的?

1)读取字节流,分析读到的字节流,确认是否存在空行

2)提取Content-Length,获得正文长度,然后在读取或者截取指定长度的内容

Content-Length:正文部分的字节数。

代码细节1:

 字符串流(stringstream)的分割机制

  • std::stringstream ss(req_line) 将输入字符串req_line(即"GET / HTTP/1.1\r\n")包装为一个流对象。
  • 输入运算符>>在读取数据时,默认以空白字符(空格、制表符\t、换行符\n、回车符\r等)作为分隔符,并自动跳过前导空白字符。

认识请求报头的两个属性:Content-Length 和 Content-Type

        读取图片,视频,音频等文件时,不是文本类型的,是2进制(2进制,文本,都是字节流),因此读取的时候不能按照字符串的风格来读取,例如 '\0' ,'\n' 的方式读取,否则可能读不完。

因此正确的读取文件的方式是:
        计算出文件大小,根据文件大小来读取,推荐的C++容器,std::vector<char>。也可以使用破坏封装性的std::string来读取,读取前先resize成文件大小。

Content-Type对照:

Content-Type对照表

代码细节2:

实验验证

认识其他报头字段

  • HOST:客户端告知服务器, 所请求的资源是在哪个主机的哪个端口上;
  • User-Agent:声明用户的操作系统和浏览器版本信息;
  • Refer:当前页面是从哪个页面跳转过来的;

代理服务器,用来实现负载均衡。

pachong本质:用HTTP客户端,来模拟浏览器行为,获取指定链接下的网页。

反pa:检查User-Agent,判断其是否为正常客户端发送的

代码:Linux-remote: linux远程仓库https://gitee.com/its-quite-six/linux-remote/tree/master/25_9_22/HTTP

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

相关文章:

  • 网站调用微信js视频深圳微信网站建设公司哪家好
  • 佛山网站建设策划做网站需提供什么资料
  • Swift 实现 DLNA 投屏功能:完整技术解析与实践指南
  • Axios 请求
  • Macbook突然无法开机和充电导致项目无法编译-《时光小铺》的开发意外事故~另寻求维修高手指导
  • 用html5写一个宠物小精灵游戏
  • 客观与主观评估扩散模型在构音障碍语音增强中的应用
  • Xcode 26 error
  • python+django/flask的宠物救助及领养系统javaweb
  • 半导体网站建设装饰公司网页设计
  • 企业网站建设策划书 前言做影视网站需要多大硬盘
  • 电子基石:硬件工程师的器件手册 (十六) - 射频电路:电磁波的有意操控
  • DeepSeek辅助整合精简的DuckDB大数运算插件
  • InnoDB Undo Log机制全解析
  • K8s学习笔记(三) kubectl 常用命令
  • 第二章:Java到Go的思维转变
  • EFR32MG21模组(Zigbee)与STM32单片机通信
  • 部署的git仓库地址变更后更改新地址
  • 加强部门网站建设wordpress验证码失效
  • 昆山做网站的jofuns商务网站开发课程体会
  • PyTorch 神经网络模型构建与训练笔记(2)
  • 某旅游学院网络安全项目:构建高效监控集中管理与巡检系统
  • 【开题答辩全过程】以 J2EE应用于母婴健康管理系统的开发与实施为例,包含答辩的问题和答案
  • 网站设计与制作公司中铁中基建设集团网站
  • 怎么样自己做百度网站做网站什么主题好做
  • es的java调用
  • Jenkins运维之路(初次调试共享库)
  • 离线下载npm包
  • 【UE5.6.1】UE5初学者教程学习笔记:编辑器操作 (1-7集)
  • 伊春seo公司seo网站页面诊断