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

网站建设心得体会及总结四年级小新闻50字左右

网站建设心得体会及总结,四年级小新闻50字左右,网站建设用什么服务器,公众号开发制作看到一个文章[Go] 不到 100 行代码实现一个支持 CONNECT 动词的 HTTP 服务器 原理图如下: 这里在NET8.0中实现反向代理服务器部分 新建MiniApi项目 编辑Program.cs文件。 var builder WebApplication.CreateSlimBuilder(args);var app builder.Build();// 将…

看到一个文章[Go] 不到 100 行代码实现一个支持 CONNECT 动词的 HTTP 服务器

原理图如下:
在这里插入图片描述

这里在NET8.0中实现反向代理服务器部分

新建MiniApi项目
在这里插入图片描述
编辑Program.cs文件。

var builder = WebApplication.CreateSlimBuilder(args);var app = builder.Build();// 将HTTP请求通过协议升级机制转为远程TCP请求(WebSocket分支,Nginx支持) 
app.Map("/http2tcp", async (context) =>
{var upgradeFeature = context.Features.Get<Microsoft.AspNetCore.Http.Features.IHttpUpgradeFeature>();if (upgradeFeature != null && upgradeFeature.IsUpgradableRequest){context.Features.Get<Microsoft.AspNetCore.Http.Timeouts.IHttpRequestTimeoutFeature>()?.DisableTimeout();context.Response.Headers.Connection = Microsoft.Net.Http.Headers.HeaderNames.Upgrade;context.Response.Headers.Upgrade = "http2tcp/1.0";Stream stream = await upgradeFeature.UpgradeAsync();using System.Net.Sockets.TcpClient tcpClient = new System.Net.Sockets.TcpClient();await tcpClient.ConnectAsync(System.Net.IPEndPoint.Parse("127.0.0.1:1000"));using System.Net.Sockets.NetworkStream network = tcpClient.GetStream();var taskX = network.CopyToAsync(stream);var tsakY = stream.CopyToAsync(network);Task.WaitAny(taskX, tsakY);}
});// 将HTTP请求通过CONNECT方法转为TCP请求(CONNECT分支)主流浏览器都支持  https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/CONNECT
app.MapMethods("", new[] { HttpMethods.Connect }, async (context) =>
{var auth = context.Request.Headers["Proxy-Authorization"];await context.Response.Body.FlushAsync();var socket = context.Features.Get<Microsoft.AspNetCore.Connections.Features.IConnectionSocketFeature>()!.Socket;var stream = new System.Net.Sockets.NetworkStream(socket);using var tcpClient = new System.Net.Sockets.TcpClient();await tcpClient.ConnectAsync(System.Net.IPEndPoint.Parse(context.Request.Host.Value));using var network = tcpClient.GetStream();var taskX = network.CopyToAsync(stream);var tsakY = stream.CopyToAsync(network);Task.WaitAny(taskX, tsakY);await socket.DisconnectAsync(true);socket.Close();
});app.Run();

正向代理服务器的HttpClient请求如下,将获取到的TcpStream和TcpListener的NetworkStream串联即可。

// HTTP Upgrade 客户端请求方式
GET http://127.0.0.1:5199/http2tcp HTTP/1.1
Connection: upgrade
Upgrade: example/1, foo/2
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)
Accept-Encoding: gzip, deflate
Host: 127.0.0.1:5199HTTP CONNECT 客户端请求方式
CONNECT 127.0.0.1:1000 HTTP/1.1
Host: 127.0.0.1:1000
Proxy-Authorization: basic aGVsbG86d29ybGQ=

如下是正向代理服务器和目标服务器之间数据传输示意图。
在这里插入图片描述

http://www.dtcms.com/wzjs/17588.html

相关文章:

  • 外贸型网站建设公司营销推广是什么意思
  • 合浦建设局网站网络销售新手入门
  • 富阳房产网安徽百度seo教程
  • 健身器材 网站模版全网营销推广公司
  • 怎么做展示型网站品牌营销做得好的品牌有哪些
  • 个人申请网站网络推广是什么职位
  • 在线设计外卖平台店招seo优化基础教程pdf
  • 做网站还是微信小程序百度登录首页
  • 广东湛江怎么做网站教程泰州网站建设优化
  • html基础标签seo学途论坛网
  • 商会网站制作网站流量查询工具
  • 中方建设局网站南通seo网站优化软件
  • 建设vip视频解析网站违法吗写软文的app
  • 宜春公司做网站宁波网站建设公司
  • 新乡谷雨网络公司做的网站怎么样网络营销工具分析
  • 名字找备案网站指数分布的分布函数
  • 淮北网站网站建设中国搜索引擎市场份额
  • 网站上的地图怎么做竞价排名深度解析
  • 成都百度推广开户公司淘宝seo搜索优化工具
  • 社团网站开发模板百度一下首页网页手机版
  • 电商网站 外包电商营销推广方法
  • wordpress谷歌字体 4.9seo搜索引擎优化服务
  • 数据库 网站 模板搜索引擎优化课程总结
  • 做网站用php哪些知识点企业培训方案制定
  • 西安手机网站制作app拉新怎么做
  • 珠海本地网站怎么查百度搜索排名
  • 做pc端网站如何武汉seo服务
  • 福田做国外网站设计公司好吗广州网络广告推广公司
  • 制作网页游戏的软件标题优化怎么做
  • 关闭 百度云加速 后网站打不开了长沙优化网站