• 首页
  • 每日推荐
  • VPS优惠
    • 国内VPS
    • 高防VPS
    • 美国VPS
    • 香港VPS
  • 虚拟主机
  • 独立云服务器
  • 教程
  • 干货
  • 八卦
  • 站长 合作
  • 首页
  • 每日推荐
  • VPS优惠
    • 国内VPS
    • 高防VPS
    • 美国VPS
    • 香港VPS
  • 虚拟主机
  • 独立云服务器
  • 教程
  • 干货
  • 八卦
广告位火热招募 QQ:80071052 广告位火热招募 QQ:80071052 广告位火热招募
QQ:80071052 广告位火热招募 QQ:80071052 广告位火热招募 QQ:80071052
#每日推荐#

解答HTTP服务器中遇到的问题

2020-12-28 20:48:37
10 0 0

基于HttpListener手写服务器并不是很难。这个过程中小编是基于早期写的一个Server雏形,项目名为 Kserver。接下来小编就和大家说说Kserver的调用。

在KServer_OnRequest中处理正常的HTTP请求,在KServer_OnError中处理程序错误,通常会返回HTTP 500给客户端。这个程序启动后占用 6600 端口,然后在 Apache 配置了反向代理。但是写Cookie始终不成功。

我设置Host为req.Url.Host。这个在本机是不会有问题的,单独在服务器中使用80端口也不会有问题,有问题的是即便通过反向代理,获取 Headers 中 的Host值始终还是 localhost,要通过X-Forwarded-Host才可以,这个大学时好歹了解过,平时开发全部基于IIS,没有反向代理,头一回遇到。

接下来就是模板引擎了,不用Razor了,说真的对Razor渐渐的没啥好感了,感觉挺笨重,所以选用了DotLiquid,用Liquid做模板引擎的应用可以说是非常多了。于是扩展了String类,增加了Html模板文件渲染 Html 的方法。

RenderBody 是模仿 Razor 搞的个关键字,表示是子页显示内容的区域。对于字体、脚本(第三方)、图片这些静态资源,我的想法是既然不会有大的变动,就让他永久缓存在浏览器好了。其他的就是处理POST,处理Cookie 了。HttpListenerRequest 是没法获取 Form 表单的值的,只能读取 InputStream 中的值,然后自己根据键值对获取了。Cookie 是不能简单的通过键值对分割,查询值按照等号分割没关系,因为 Value 都是编码了的,不会含有等号,但是 Cookie 中是可能会有等号的,比如 Base64 编码过的值里,大部分都有。同样,获取 Cookie 的方法也木有,自己从 Header 里找吧。接下来模拟登陆成功后的跳转,用过Asp.net 的知道有个Response.Redirect不过 HttpListenerRequest 肯定是没有这个方法的,可以通过设置 Header 302 重定向就行了。

对于较大的页面,也许还是希望用Gzip压缩一下,需要设置 Content-Encoding 为 Gzip。我这里处理比较简单,是不管客户端的 Accept-Type 的,不过现代浏览器基本都支持了。

对相应内容进行压缩:

既然是纯 C#,没有了 WebForm 和 MVC 这类框架,分页处理也显得不简单了,从网上改造了一个 PHP 写的分页类,果然 PHP 是最好的语言。这不是取数据时的分页,而是显示时候的分页。

用 SimpleMDE 作为 Markdown 编辑器,,谁用谁知道,对于富文本的排版,我始终无能为力,Word 也不会用,markdown 真好用!SimpleMDE 是没有上传图片的功能,需要自己处理,不过自定义按钮官方文档中有,我只是做了写微小的工作,为按钮加个选图片和上传的事件,这需要 jQuery 和 jQuery.Form 的支持。如果你的接口是外部服务或者阿里云OSS,要记得设置跨域,不然报错,这个搞过开发的都懂得。最初版本的后台 Markdown 渲染用的 Github 上的 star 最多的那一个 Markdig,在 CentOS 7 下 mono 环境运行报错,换了 CommonMark 使用,这个在 Nuget 上能找到。最终的最终,把所有资源都打包进了资源文件,用 ILMerge 合并程序集,你的服务端就只剩下一个 EXE 了。

以上就是小编的今日分享,希望对您有所帮助。

傲天
相关文章
狸猫云 – 香港高速CN2-香港高速GIA云服务器促销活动
福云数据 – 美国高防GIA服务器大促销超低价格
青云互联 – 年终特惠香港弹性云八折:15元/月起,可自定义配置,可选windows
如何选择适合自己的vps主机
服务器租用和服务器托管价格差异在哪里
评论 (0)
再想想
商家广告
sidebar_b1
sidebar_b1
最新文章
旅途云 – 新年采购活动开启低至1.5折海量云服务器裸金属服务器
2021-01-14 18:36:50
狸猫云 – 香港高速CN2-香港高速GIA云服务器促销活动
2021-01-14 18:20:26
福云数据 – 美国高防GIA服务器大促销超低价格
2021-01-14 18:10:09
青云互联 – 年终特惠香港弹性云八折:15元/月起,可自定义配置,可选windows
2021-01-14 17:33:04
如何选择适合自己的vps主机
2020-12-28 20:50:41
商家广告
sidebar_b1
sidebar_b1
sidebar_b1
  • 投稿
  • 广告合作
  • 网站地图
Copyright © 2021 云搜 鄂ICP备19025735号-3
友情链接: 旅途云 云服务器排行