音视频面试题之tls-03http协议传输

计算机网络-HTTP常见面试题 3xx 资源位置发生了变动,需要重新发送请求获取资源(重定向)4xx 客户端发送的请求报文有误 服务器无法处理。总结:HTTP是一个在计算机世界里面专门用于。(服务器与服务器之间、服务器与客户端之间)5xx 服务器处理请求时内部发生的错误。1xx 提示信息,协议处理的中间状态。2xx 服务器成功处理了客户端的请求。两种实现方式:强制缓存 协商缓存。传输文字、图片、视频等数据的。 阅读详情

HTTP 协议分析

HTTP(HyperText Transfer Protocol,超文本传输协议)是 Web 通信的基础协议,基于客户端-服务器模型,默认使用 TCP 80 端口(HTTPS 使用 443 端口)。


一、HTTP 请求报文结构

HTTP 请求由 请求行、请求头部、空行 和 请求体 四部分组成。

请求行        →  GET /index.html HTTP/1.1
请求头部      →  Host: www.example.com
                User-Agent: Mozilla/5.0
                Accept: text/html
空行          →  (CRLF)
请求体        →  (可选,如 POST 数据)
1. 请求行(Request Line)

请求行是请求报文的第一行,包含三个字段:

字段说明示例
请求方法表示对资源的操作类型GET、POST、PUT、DELETE
请求 URI资源的路径和查询参数/api/user?id=123
HTTP 版本协议版本号HTTP/1.1、HTTP/2.0

常用请求方法:

  • GET:获取资源,幂等,无请求体
  • POST:提交数据(如表单),非幂等,有请求体
  • PUT:上传/更新资源,幂等
  • DELETE:删除资源,幂等
  • HEAD:类似 GET,但只返回头部,不返回响应体
  • PATCH:局部更新资源
  • OPTIONS:查询服务器支持的方法
  • TRACE:回显请求,用于诊断
  • CONNECT:建立隧道(用于 HTTPS 代理)

二、HTTP 响应报文结构

HTTP 响应由 状态行、响应头部、空行 和 响应体 四部分组成。

状态行        →  HTTP/1.1 200 OK
响应头部      →  Content-Type: text/html; charset=utf-8
                Content-Length: 1024
空行          →  (CRLF)
响应体        →  <html>...</html>
1. 状态行(Status Line)

状态行是响应报文的第一行,包含三个字段:

字段说明示例
HTTP 版本协议版本号HTTP/1.1
状态码三位数字,表示响应状态200、404、500
原因短语状态码的文本描述OK、Not Found

常见状态码分类:

区间类别含义
1xx信息性请求已接收,继续处理
2xx成功请求已成功处理
3xx重定向需要进一步操作以完成请求
4xx客户端错误请求有语法错误或无法完成
5xx服务器错误服务器处理请求时出错

常见状态码详解:

状态码原因短语说明
200OK请求成功
201Created资源创建成功
204No Content成功但无响应体
301Moved Permanently永久重定向
302Found临时重定向
304Not Modified资源未修改,使用缓存
400Bad Request请求语法错误
401Unauthorized需要身份认证
403Forbidden服务器拒绝执行
404Not Found资源不存在
405Method Not Allowed方法不被允许
500Internal Server Error服务器内部错误
502Bad Gateway网关错误
503Service Unavailable服务不可用
504Gateway Timeout网关超时

三、常用头部字段

HTTP 头部字段分为 通用头部、请求头部、响应头部 和 实体头部 四类。

1. 通用头部(General Headers)

请求和响应都可使用:

字段说明示例
Date报文创建时间Date: Tue, 15 Oct 2024 10:30:00 GMT
Connection连接管理Connection: keep-alive / close
Cache-Control缓存控制Cache-Control: max-age=3600
Pragma兼容旧缓存(HTTP/1.0)Pragma: no-cache
Trailer分块传输的尾部字段Trailer: Content-MD5
Transfer-Encoding传输编码方式Transfer-Encoding: chunked
Upgrade升级协议Upgrade: websocket
Via经过的代理服务器Via: 1.1 proxy.example.com
Warning附加警告信息Warning: 110 Response is stale
2. 请求头部(Request Headers)

仅出现在请求报文中:

字段说明示例
Host目标主机和端口(HTTP/1.1 必需)Host: www.example.com:8080
User-Agent客户端标识User-Agent: Mozilla/5.0 (Windows NT 10.0)
Accept客户端能接受的媒体类型Accept: text/html, application/json
Accept-Charset接受的字符集Accept-Charset: utf-8, iso-8859-1
Accept-Encoding接受的编码/压缩方式Accept-Encoding: gzip, deflate, br
Accept-Language接受的语言Accept-Language: zh-CN, en;q=0.9
Authorization认证凭证Authorization: Bearer <token>
Cookie客户端存储的 CookieCookie: sessionId=abc123; theme=dark
Referer请求来源页面的 URLReferer: https://google.com/
Origin请求来源(跨域时使用)Origin: https://foo.example
If-Match资源匹配条件(ETag)If-Match: "abc123"
If-None-Match资源不匹配条件If-None-Match: "abc123"
If-Modified-Since资源修改时间条件If-Modified-Since: Sat, 01 Jan 2024 00:00:00 GMT
If-Unmodified-Since资源未修改时间条件If-Unmodified-Since: Sat, 01 Jan 2024 00:00:00 GMT
Range请求部分内容Range: bytes=0-999
Content-Length请求体长度(字节)Content-Length: 256
Content-Type请求体的媒体类型Content-Type: application/json
X-Requested-With异步请求标识X-Requested-With: XMLHttpRequest
3. 响应头部(Response Headers)

仅出现在响应报文中:

字段说明示例
Server服务器软件信息Server: Apache/2.4.41 (Ubuntu)
Set-Cookie设置 CookieSet-Cookie: sessionId=abc123; Path=/; HttpOnly
Location重定向目标 URLLocation: https://www.example.com/new
ETag资源实体标签ETag: "abc123def456"
Last-Modified资源最后修改时间Last-Modified: Tue, 15 Oct 2024 10:00:00 GMT
Accept-Ranges是否支持范围请求Accept-Ranges: bytes
Content-Range响应体的范围Content-Range: bytes 0-999/10000
WWW-Authenticate认证方式质询WWW-Authenticate: Basic realm="User Visible Realm"
Access-Control-Allow-OriginCORS 允许的源Access-Control-Allow-Origin: *
Access-Control-Allow-MethodsCORS 允许的方法Access-Control-Allow-Methods: GET, POST, OPTIONS
X-Powered-By技术栈信息X-Powered-By: PHP/7.4
X-Frame-Options页面是否可被嵌入 iframeX-Frame-Options: DENY
X-Content-Type-OptionsMIME 类型嗅探防护X-Content-Type-Options: nosniff
Content-Security-Policy内容安全策略Content-Security-Policy: default-src 'self'
Strict-Transport-Security强制使用 HTTPSStrict-Transport-Security: max-age=31536000
4. 实体头部(Entity Headers)

描述请求体/响应体的元信息:

字段说明示例
Content-Type实体的媒体类型和编码Content-Type: text/html; charset=utf-8
Content-Length实体长度(字节)Content-Length: 1024
Content-Encoding实体内容的编码/压缩Content-Encoding: gzip
Content-Language实体的自然语言Content-Language: zh-CN
Content-Location实体的备选位置Content-Location: /index.html
Content-MD5实体内容的 MD5 校验Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==
Expires实体过期时间Expires: Thu, 01 Dec 2024 16:00:00 GMT
Allow资源支持的方法Allow: GET, HEAD, PUT

四、HTTP 版本演进

版本发布时间主要特性
HTTP/0.91991只有 GET 方法,无头部,仅传输 HTML
HTTP/1.01996引入请求头/响应头、状态码、多种方法
HTTP/1.11999持久连接、管道化、Host 头部、分块传输、缓存机制
HTTP/2.02015二进制协议、多路复用、头部压缩、服务器推送
HTTP/3.02022基于 QUIC(UDP),更快的握手,无队头阻塞

HTTP 常见面试题 10 个


1. HTTP 和 HTTPS 的区别是什么?

参考答案:

特性HTTPHTTPS
端口80443
安全性明文传输,易被窃听/篡改SSL/TLS 加密,安全
证书不需要需要 CA 证书
性能较快加密解密有一定开销
协议层应用层HTTP + SSL/TLS

HTTPS 在 HTTP 基础上加入了 SSL/TLS 协议,通过非对称加密交换密钥,再用对称加密传输数据,保证了数据的机密性、完整性和身份认证。


2. GET 和 POST 的区别是什么?

参考答案:

特性GETPOST
作用获取资源提交/创建资源
参数位置URL 中请求体中
参数长度受 URL 长度限制(浏览器通常 2KB~8KB)无严格限制
安全性参数可见,相对不安全参数在 body 中,相对安全
幂等性幂等(多次调用结果相同)非幂等
缓存可被浏览器缓存不可缓存
书签可收藏为书签不可收藏
后退/刷新无害会重新提交数据

注意: 安全性上 POST 并非绝对安全,只是参数不在 URL 上显示,抓包仍然可见。真正安全需要靠 HTTPS 加密。


3. HTTP 常见的状态码有哪些?分别代表什么含义?

参考答案:

  • 1xx 信息性:100 Continue(继续发送请求)、101 Switching Protocols(协议切换)
  • 2xx 成功:200 OK、201 Created、204 No Content、206 Partial Content
  • 3xx 重定向:301 Moved Permanently(永久重定向)、302 Found(临时重定向)、304 Not Modified(协商缓存命中)、307 Temporary Redirect
  • 4xx 客户端错误:400 Bad Request、401 Unauthorized、403 Forbidden、404 Not Found、405 Method Not Allowed、408 Request Timeout、409 Conflict、413 Payload Too Large、429 Too Many Requests
  • 5xx 服务器错误:500 Internal Server Error、502 Bad Gateway、503 Service Unavailable、504 Gateway Timeout

4. 解释一下 HTTP 的缓存机制(强缓存和协商缓存)

参考答案:

HTTP 缓存分为 强缓存 和 协商缓存 两级:

强缓存(不发请求):

  • 命中则直接使用本地缓存,不发请求
  • 相关字段:Expires(HTTP/1.0,绝对时间)、Cache-Control(HTTP/1.1,相对时间)
  • Cache-Control 常见值:max-age、no-cache、no-store、public、private

协商缓存(发请求验证):

  • 强缓存失效后,浏览器发请求验证资源是否更新
  • 服务器返回 304 表示未修改,继续使用缓存;返回 200 表示已更新
  • 两组头部:
    • Last-Modified / If-Modified-Since:基于最后修改时间
    • ETag / If-None-Match:基于资源唯一标识(优先级更高)

缓存流程:

  1. 浏览器先检查强缓存是否命中 → 命中则直接使用
  2. 未命中则发送请求进行协商缓存
  3. 协商缓存命中返回 304,浏览器使用本地缓存
  4. 协商缓存未命中返回 200 和新资源

5. 什么是跨域?如何解决跨域问题?

参考答案:

跨域 是浏览器的 同源策略 限制:协议、域名、端口三者有一个不同就会产生跨域。同源策略是为了安全,防止恶意网站读取其他网站的数据。

常见解决方案:

  1. CORS(跨域资源共享):服务端设置响应头

    • Access-Control-Allow-Origin:允许的源
    • Access-Control-Allow-Methods:允许的方法
    • Access-Control-Allow-Headers:允许的头部
    • 简单请求直接发,非简单请求先发 OPTIONS 预检请求
  2. JSONP:利用 <script> 标签不受同源策略限制,只支持 GET

  3. 代理服务器:Nginx 反向代理 / Node.js 中间件代理,将请求转发到目标服务器

  4. postMessage:页面间通信,如 iframe 之间

  5. WebSocket:协议本身不受同源策略限制

  6. document.domain + iframe:适用于一级域名相同的场景


6. HTTP/1.1 和 HTTP/2.0 的区别是什么?

参考答案:

特性HTTP/1.1HTTP/2.0
传输格式文本格式二进制分帧
多路复用无,存在队头阻塞支持,同一域名一个连接并行请求
头部压缩无,重复发送HPACK 算法压缩头部
服务器推送无支持,主动推送资源
流优先级无支持流优先级
队头阻塞有(TCP 层面 + HTTP 层面)解决了 HTTP 层面的队头阻塞

HTTP/2 核心改进:

  • 二进制分帧:将消息拆分为更小的帧,二进制编码更高效
  • 多路复用:单连接上并行处理多个请求响应,解决了 HTTP/1.1 的队头阻塞
  • 头部压缩:HPACK 算法减少冗余头部传输
  • 服务器推送:服务端主动将资源推送给客户端缓存

7. Cookie、Session、Token 的区别是什么?

参考答案:

特性CookieSessionToken
存储位置客户端(浏览器)服务端客户端(通常在 localStorage 或 header 中)
安全性较低,可被篡改较高高(签名验证)
跨域受同源策略限制依赖 Cookie天然支持跨域
服务器压力小大(需存储 session)小(无状态)
分布式支持需共享 session天然支持
典型大小≤4KB无限制可自定义

JWT(JSON Web Token) 是最常见的 Token 实现,由三部分组成:

  • Header:算法和类型
  • Payload:用户信息和声明
  • Signature:签名,防止篡改

8. 什么是 CSRF 和 XSS?如何防范?

参考答案:

CSRF(Cross-Site Request Forgery,跨站请求伪造):

  • 原理:攻击者诱导用户在已登录的网站上执行非本意的操作
  • 防范:
    1. 验证 Referer 头部
    2. 使用 CSRF Token(每次请求携带随机令牌)
    3. 关键操作使用验证码
    4. SameSite Cookie 属性(Strict / Lax)

XSS(Cross-Site Scripting,跨站脚本攻击):

  • 原理:攻击者向页面注入恶意脚本,其他用户访问时执行
  • 类型:存储型、反射型、DOM 型
  • 防范:
    1. 对用户输入进行转义/过滤
    2. 使用 Content-Security-Policy 限制脚本来源
    3. Cookie 设置 HttpOnly 防止窃取
    4. 使用框架自带的转义机制(如 React 的 JSX)

9. HTTP 请求中常见的头部字段有哪些?分别有什么作用?

参考答案:

通用头部:

  • Cache-Control:缓存控制策略
  • Connection:连接管理(keep-alive / close)
  • Date:报文创建时间
  • Transfer-Encoding:传输编码(如 chunked)

请求头部:

  • Host:目标主机(HTTP/1.1 必需)
  • User-Agent:客户端信息
  • Accept:客户端接受的内容类型
  • Accept-Encoding:支持的压缩算法
  • Cookie:携带的 Cookie
  • Authorization:认证信息(Bearer Token 等)
  • Referer:请求来源页面
  • Origin:跨域请求的源
  • If-Modified-Since / If-None-Match:协商缓存条件

响应头部:

  • Server:服务器信息
  • Set-Cookie:设置 Cookie
  • Location:重定向地址
  • ETag / Last-Modified:缓存标识
  • Access-Control-Allow-Origin:CORS 跨域许可
  • Content-Type:响应体类型
  • Content-Length:响应体长度

10. 输入 URL 到页面展示的完整过程是什么?

参考答案:

  1. URL 解析:浏览器解析 URL 的协议、域名、路径、参数等
  2. DNS 解析:将域名解析为 IP 地址(浏览器缓存 → 系统缓存 → 路由器缓存 → ISP DNS → 根/顶级/权威 DNS 递归查询)
  3. TCP 连接:与服务器建立 TCP 三次握手
  4. TLS 握手(HTTPS):协商加密套件、交换密钥、验证证书
  5. 发送 HTTP 请求:构建请求报文,发送到服务器
  6. 服务器处理:服务器接收请求,处理业务逻辑,生成响应
  7. 返回 HTTP 响应:服务器返回响应报文(状态行、头部、响应体)
  8. 浏览器解析渲染:
    • 解析 HTML 构建 DOM 树
    • 解析 CSS 构建 CSSOM 树
    • 合并为渲染树(Render Tree)
    • 布局(Layout):计算元素位置和大小
    • 绘制(Paint):将像素绘制到屏幕
    • 合成(Composite):将多个层合并显示
  9. TCP 断开连接:四次挥手

其中还会涉及 浏览器缓存(强缓存/协商缓存)、CDN、负载均衡 等中间环节。

应用层协议深度解析:从HTTP、DNS到Socket编程与安全优化 应用层是计算机网络协议栈中直接面向用户和业务的一层,它定义了通信的语义和语法,如HTTP、DNS、SMTP等核心协议。其工作原理基于客户端-服务器或P2P模型,通过Socket编程接口实现数据交换,并依赖传输层的TCP或UDP服务。理解应用层的技术价值在于能够设计高效、安全的通信方案,例如通过HTTP/2的多路复用提升Web性能,或利用TLS保障数据传输的机密性。在实际应用场景中,无论是嵌入式Linux开发、BMS协议设计,还是构建高并发服务器,都需要综合考虑协议选择、性能优化(如连接复用、缓存策略)与安全 阅读详情

相关推荐

计算机网络核心协议深度解析:从TCP/IP到HTTP/3实战指南

计算机网络协议是互联网通信的基础架构,其核心原理基于分层设计思想实现关注点分离。TCP/IP协议簇作为实际应用最广泛的网络模型,通过传输层的TCP协议提供可靠数据传输,应用层的HTTP协议支撑Web服务。理解三次握手、滑动窗口等机制对网络性能优化具有重要价值,特别是在高并发场景下能有效提升系统稳定性。随着技术演进,HTTP/2的多路复用和HTTP/3的QUIC协议进一步优化了网络传输效率。本文基于典型面试题和工程实践,深入解析TCP流量控制与拥塞控制的区别,帮助开发者构建完整的网络知识体系,解决实际开发中的

weixin_34124651的博客 324

架构面试题汇总:网络协议34问(2024版)

在当今的互联网时代,网络协议是实现各种设备和应用程序之间顺畅通信的基石。无论是构建分布式系统、开发Web应用,还是进行网络通信,对网络协议有深入的理解都是至关重要的。 为了评估候选人在这方面的专业知识和实践经验,我们精心准备了一系列关于网络协议的面试题。这些问题涵盖了RPC(远程过程调用)的基本原理、HTTP协议方法的细节,以及在网络通信中处理故障和确保数据完整性的策略。

码到三十五 1883

计算机网络面试核心:从TCP/IP到HTTP/3的协议深度解析与实战应答

计算机网络是互联网的基石,其核心在于通过分层模型(如TCP/IP四层)和一系列协议实现可靠、高效的数据传输。理解其工作原理,关键在于掌握各层协议的设计哲学与协同机制。例如,传输层的TCP协议通过三次握手、滑动窗口和拥塞控制算法(如CUBIC)保障了数据的可靠、有序交付,而UDP则以其无连接、低延迟的特性支撑了DNS查询和实时音视频等场景。这种可靠性与效率的权衡,直接体现在HTTP协议的演进中——从HTTP/1.1的队头阻塞,到HTTP/2的多路复用,再到基于QUIC(UDP)的HTTP/3以解决传输层队头阻

weixin_30572613的博客 350

【面试题】网络 http、https协议(第一篇)

当需要从服务器检索信息时,使用 GET 请求。当需要向服务器提交数据或执行其他非幂等操作时,使用 POST 请求。在传输敏感数据时,务必使用 HTTPS 协议来加密数据。根据需要传输的数据量选择适当的请求方法。如果数据量较大,则使用 POST 请求;如果数据量较小且主要是检索信息,则使用 GET 请求。

abclui的专栏 2136

网络基础面试题(更新中)

答案:Pytest简单易用编写测试用例就像写普通函数使用assert语句进行断言,无需学习新的 API功能强大支持参数化测试丰富的标记系统(Mark)强大的 Fixtures 机制灵活的钩子函数(Hooks)插件丰富:并发执行:超时控制:HTML 报告:Allure 报告报告完善详细的错误信息支持多种报告格式清晰的测试结果展示兼容性好兼容 unittest兼容 nose支持多种测试风格# 简单的测试用例# 参数化测试(1, 2, 3),

weixin_45894621的博客 624

HTTP、TCP、UDP、Socket分不清?从分层到排错一篇看懂

网络通信是现代应用的基石,但HTTP、TCP、UDP、Socket等术语常被混为一谈。要准确理解它们,需从TCP/IP四层模型切入:HTTP负责应用层数据格式,TCP提供可靠传输,UDP追求低延迟,Socket则是操作系统的编程接口。掌握三次握手、四次挥手、连接复用等核心原理,是分析502 bad gateway、连接重置等故障的基础。在实际工程中,无论是Socket编程、HTTPS抓包还是本地网络调试,分层定位的思维都能帮助快速缩小问题范围。从基础概念到常见报错排查,系统梳理网络知识脉络,让网络排错不再凭

weixin_30702441的博客 289

HTTP、HTTPS协议详解

HTTP、HTTPS协议详解

m0_60259116的博客 1646

TCP、UDP与QUIC协议深度解析:从核心原理到工程实践

传输层协议是网络通信的基石,负责为应用层提供端到端的逻辑通信服务。其核心原理在于在网络层IP协议提供的“尽力而为”传输基础上,通过不同的机制来保证通信质量。TCP协议通过面向连接、确认重传、滑动窗口和拥塞控制等机制,提供了高可靠性的字节流传输,其技术价值在于为HTTP、数据库连接等关键服务提供了稳定保障。UDP协议则采用无连接、不可靠的数据报模型,牺牲可靠性以换取低延迟和高效率,在实时音视频、游戏和DNS查询等场景中不可或缺。随着互联网应用对性能和安全性要求的提升,基于UDP并集成了TLS加密、多路复用和连

weixin_30691871的博客 397

音视频面试题之tls-01核心知识梳理

HLS(HTTP Live Streaming)是苹果推出的流媒体协议,将视频切分为10秒左右的.ts片段,通过m3u8播放列表按序播放。支持自适应码率、点播与直播,兼容性强,基于HTTP可高效利用CDN。

qq_43538607的博客 48

NSIDC海冰运动产品-速度矢量场图绘制(数据下载和处理--年、季节平均)【python/basemap】

入门级NSIDC海冰运动产品速度矢量场图绘制(数据下载和处理--年、季节平均)【python/basemap】

Mluoo的博客 2959

避坑指南:Qwen2.5-VL图片预处理中常见的5个尺寸错误

本文深入解析了Qwen2.5-VL模型在图片预处理环节中开发者最常遇到的五个尺寸错误,包括动态分辨率对齐、宽高比超标、像素数限制等问题。文章结合源码解读,详细剖析了`process_vision_info`函数和`resize`逻辑,并提供了具体的排查流程图与参数设置建议,旨在帮助开发者构建健壮的预处理流水线,有效规避显存溢出与推理失败的风险。

weixin_29290379的博客 176

音视频面试题之tls-05 hls高频面试题

HLS 是苹果推出的基于 HTTP 的流媒体协议,将视频切分为 2-10 秒的 TS 片段,通过 m3u8 播放列表管理。

qq_43538607的博客 44

【eNSP 华为模拟器】单臂路由实战:从原理到配置全解析

本文详细解析了单臂路由技术,通过华为eNSP模拟器从原理到配置进行实战教学。文章阐述了单臂路由如何利用路由器单物理接口创建多个子接口,实现不同VLAN间通信,并提供了完整的操作步骤、配置命令及排错方法,帮助网络工程师掌握这一经典网络技术。

698

浅谈UDP与其低延时传输协议QUIC

浅谈UDP与其低延时传输协议QUIC

m0_60259116的博客 770

【AI实战】用Coze工作流打造抖音视频文案提取神器——从单链接到批量处理的进阶指南

本文详细介绍了如何利用Coze工作流打造抖音视频文案提取工具,从单链接处理到批量提取的进阶指南。通过AI技术和工作流的结合,用户可以高效提取抖音视频的ASR和OCR文本,大幅提升内容创作效率。文章还涵盖了性能优化、异常处理及实际应用场景扩展,助力开发者快速实现抖音文案自动化提取。

weixin_29210759的博客 279

【施磊】C++课程笔记目录

【C++编程】施磊老师C++笔记目录

GeniusAng的博客 4122

面试题:Https通信原理及交互流程

面试题:Https通信原理及交互流程

m0_60259116的博客 487

13、深入理解 Microsoft 365 的安全与合规概念

本文深入探讨了 Microsoft 365 的安全与合规概念,涵盖文档存储、文件共享、审计、保留、eDiscovery、分类和保护以及网络等多个关键方面。通过合理配置这些功能,组织可以更好地管理和保护其数据资源,满足法规要求,并提升工作效率。文章还提供了最佳实践建议及流程图,帮助读者全面理解 Microsoft 365 的安全架构和管理策略。

k8s6orchestrator的博客 211

万字图解 | 深入揭秘HTTP工作原理

最全HTTP面试,包含: 1.协议格式构成 2.发展历程 a.缓存技术、长连接、https、多路复用、数据压缩、QUIC、cookie、session 3.WebSocket

云舒编程的博客 1134

详解AUTOSAR:专栏总述

本专栏系统介绍AUTOSAR规范及车用控制器软件开发,内容覆盖基础架构、SWC/RTE、通信栈、诊断、存储、安全、看门狗、工具链、环境配置与项目实战,并持续更新各模块的集成机制与工程要点。

不脱发的程序猿 3924

Mac 下 OpenClaw 安装全记录:从零到一的保姆级图文教程

本文主要介绍了Mac 下 OpenClaw 安装全记录:从零到一的保姆级图文教程,希望能对学习使用OpenClaw 的同学们有所帮助。 文章目录 1. 背景 2. 安装教程 2.1 安装OpenClaw 2.2 配置模型 2.3 对话 3. 后续使用步骤 4. 关闭程序

weixin_43178406的博客 11万+

iOS网络协议深度解析:TCP/UDP/HTTP/HTTPS实战指南

网络协议是移动开发中的基础技术,TCP和UDP作为传输层核心协议,分别通过可靠连接和高效传输满足不同场景需求。TCP通过三次握手建立稳定连接,其流量控制机制可优化传输效率;UDP则适用于实时音视频等低延迟场景。HTTP/HTTPS作为应用层协议,在iOS开发中可通过连接复用和证书锁定提升性能与安全性。针对移动端特性,合理配置TCP保活参数、调整UDP QoS标记能显著改善弱网体验。本文结合视频会议、电商App等实际案例,详解协议选型策略与性能优化技巧,帮助开发者掌握网络调试工具链使用方法。

weixin_33858336的博客 413

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Android网络编程面试题汇总(含详细解析 四)

Android并发编程高级面试题汇总最全最细面试题讲解持续更新中👊👊👀你想要的面试题这里都有👀👇👇👇。

Misdirection_XG的博客 138

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

计算机网络面试:从协议原理到工程实践的系统性思考

计算机网络是互联网的基石,其核心在于通过分层模型(如OSI七层和TCP/IP四层)实现关注点分离,将复杂的通信问题模块化。理解协议背后的设计哲学与权衡(如可靠性与效率的平衡)至关重要。TCP通过三次握手、四次挥手、流量控制和拥塞控制等机制实现可靠传输,而HTTP/2的多路复用和头部压缩则优化了应用层性能。这些原理在工程实践中直接体现为高并发连接管理、性能调优和故障排查等能力。本文聚焦于TCP的可靠传输机制和HTTP/2的性能优化,旨在帮助开发者构建清晰的网络知识体系,将理论转化为解决实际问题的系统思维。

weixin_33984032的博客 431

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【探索java之路】简单聊聊网络通讯核心协议

本文介绍了Java开发中网络通讯的核心协议,从传输层的TCP/UDP到应用层的HTTP/HTTPS、WebSocket和gRPC。文章通过对比表格和示意图,分析了各协议的特点及适用场景,如TCP适合可靠数据传输,UDP适用于实时应用,WebSocket实现双向通信,gRPC则是微服务首选。针对Java开发者,文章推荐了相应的API和框架,并给出了学习路径建议:从基础Socket到现代HTTP客户端,再到WebSocket和gRPC,最后进阶Netty框架。全文强调理解网络协议对构建高性能Java系统的重要性

likuoelie的博客 341

音视频面试题之tls-04 ffplay_hls拉流源码分析

hls拉流源码分析

qq_43538607的博客 38
上一篇: 音视频面试题之tls-05 hls高频面试题
下一篇: 音视频面试题之tls-04 ffplay_hls拉流源码分析
八月的雨季997
博客等级 码龄8年 932粉丝 171原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

八月的雨季997

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值