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

嵌入式第三十七课!!!TCP机制与HTTP协议

TCP的其他机制

TCP头部标志位

  •      SYN:请求建立连接标志位
  •      ACK:响应报文标志位
  •      PSH:携带数据标志位,通知接收方该从缓冲区读数据
  •      FIN: 请求断开连接标志位
  •      RST:复位标志位
  •      URG: 紧急数据标志位

机制

安全可靠

        1. 三次握手和四次挥手机制

        2. 应答机制:TCP对于每一包数据都会给出相应的应答。发送数据时序列号表示这包数据的起始编号,响应报文中的确认号是接收方收到的最后一个字节编号+1。

        3. 超时重传机制:当数据发送出去等待指定时间没有收到响应,此时认为这包数据丢失则进行冲传。

        4. 滑动窗口机制:一段缓冲区,缓存TCP已发送未收到响应,准备发送等数据

提高效率

         1. 延迟应答机制:发送数据的同时可以等待应答

         2. 流量控制机制:结合TCP头部的窗口大小,动态调整发送速率。

         3. 捎带应答机制:ACK报文可能和应用层的数据同时发送

HTTP协议        

        HTTP协议是基于万维网来使用的网络协议;

WWW:万维网(世界范围内的广域网)

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

        url : 统一资源定位符,格式如下:

举个例子:

在这个url里,端口和路径忽略(主页:在主机后面直接加 ‘/’ )

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

        HTTP:超文本传输协议(应用层协议)

        标准端口:80

        备用端口:8080

        需要配合基于传输层的TCP协议进行使用

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

        HTML:超文本标记语言

HTTP通信过程

  • 1. 请求建立TCP连接
  • 2. 发送HTTP请求报文
  • 3. 接收HTTP响应报文
  • 4. 断开连接

HTTP报文格式

请求报文

HTTP请求报文(举例www.new.sohu.com):

GET / HTTP/1.1\r\n
Host: news.sohu.com\r\n
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/113.0\r\n
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8\r\n
Accept-Language: en-US,en;q=0.5\r\n
Connection: keep-alive\r\n
\r\n

Connection: keep-alive         ---->长连接:连接保持一定时间
Connection: close              ------>短连接:连接立马断开

获取请求报文的方式
WINDOWS

        点击开发人员工具——>网络——>刷新网页——>点击要查询的url——>点击标头——>请求标头(原始)

ubuntu

        使用工具wireshark(sudo wireshark)——>any——>点击TCP端口80的筛选条件——>刷新网页——>找到使用网络协议HTTP且显示200ok的——>右键找到follow——>HTTP stream

响应报文

举例(www.news.sohu)

HTTP响应报文:
HTTP/1.1 200 OK\r\n
Date: Mon, 25 Aug 2025 06:14:56 GMT\r\n
Content-Type: text/html;charset=utf-8\r\n
Server: openresty\r\n
Vary: Accept-Encoding\r\n
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Trace-Id: 15e6e7862abd49fdb1c327a6dbeb200d.10490.17561024969448219
Data-Source: 
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
S-REQ-ID: 17348448226369344247
S-REQ-TYPE: 0
X-Cache-Lookup: Cache Miss
Content-Encoding: gzip
Cache-Control: no-cache\r\n
Transfer-Encoding: chunked\r\n
X-NWS-LOG-UUID: 17348448226369344247\r\n
Connection: keep-alive\r\n
X-Cache-Lookup: Cache Miss\r\n
\r\n
<!DOCTYPE html><html><head><script>if(window&&window.performance&&typeof window.performance.now==='function'){!window.MptcfePerf?window.MptcfePerf={headst:+new Date()}:window.MptcfePerf.headst=+new Date()}</script><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta http-equiv=x-dns-prefetch-control content=on><meta name

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

相关文章:

  • 【学习笔记】系统时间跳变会影响time接口解决措施
  • 相关法律、法规知识(五)
  • 单层膜可改善无铅钙钛矿太阳能电池
  • Java 企业应用单点登录(SSO)实现方案详解
  • 创维桌面云终端-创维LB2002-白盒-晶晨S905L3A-2+8G-线刷刷机包
  • 实验2 天气预报
  • Ultra Accelerator Link(UALink)Consortium
  • 网站测试报告:WEB应用反CSRF的本质与防御机制
  • 解决 pdf.mjs 因 MIME 类型错误导致的模块加载失败问题
  • day1_线性回归的实现 李沐动手学深度学习pytorch记录
  • 吱吱企业通讯软件保障企业办公安全与效率,助力企业高效发展
  • (LeetCode 每日一题) 3000. 对角线最长的矩形的面积(数组)
  • Jmeter基础:Jmeter聚合报告
  • 6pen Art
  • 校园勤工俭学微信小程序的设计与实现:基于数字化服务生态的赋能体系构建
  • Vue2(七):配置脚手架、render函数、ref属性、props配置项、mixin(混入)、插件、scoped样式
  • C/C++ 数据结构 —— 树(2)
  • Leetcode 1049. 最后一块石头的重量 II 动态规划-01背包
  • LeetCode-22day:多维动态规划
  • Docker详细学习
  • 税务岗位职场能力解析与提升路径规划
  • 固定资产管理系统核心模块拆解:全流程管理逻辑
  • 如何利用ArcGIS探究环境与生态因子对水体、土壤、大气污染物等影响
  • 【服务器】Apache Superset MCP接入与使用
  • postman使用
  • golang 8函数
  • pytorch_grad_cam 库学习笔记——基类BaseCAM
  • 使用 Docker、Jenkins、Harbor 和 GitLab 构建 CI/CD 流水线
  • Unity:游戏性能优化!之把分散在各个游戏角色GameObject上的脚本修改为在一个脚本中运行。这样做会让游戏运行更高效?
  • Caddy + CoreDNS 深度解析:从功能架构到性能优化实践(下)