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

外贸网站建设哪家公司比较好锦绣江南网站建设

外贸网站建设哪家公司比较好,锦绣江南网站建设,深圳排名seo,vi设计说明目录 详解Asp.Net Core中的cookies搞懂cookiesAsp.Net中cookies的实现从http中获取cookies将cookies写入http中总结及感想详解Asp.Net Core中的cookies 搞懂cookies 我之前写过一篇文章来介绍cookies#xff0c;如果你对cookies不是很了解请移步理解cookies这篇文章#xff0… 目录 详解Asp.Net Core中的cookies搞懂cookiesAsp.Net中cookies的实现从http中获取cookies将cookies写入http中总结及感想 详解Asp.Net Core中的cookies 搞懂cookies 我之前写过一篇文章来介绍cookies如果你对cookies不是很了解请移步理解cookies这篇文章这对于我们研究asp.net core中的cookies可以起到很大的帮助。 Asp.Net中cookies的实现 cookies是http协议中header头的一部分服务器与客户端的cookies传递都是通过header头完成的那么asp.net core只不过是对http协议的一种实现而已。 从http中获取cookies 要从http中获取cookies首先我们要获取header头信息而这部分信息asp.net core已经为我们准备好了并且也帮我们解析了header头中cookies我们只需要通过HttpContext.Request.Cookies就可以获取所有的cookies信息。 接下来我们主要研究一下asp.net core是如何做的在这里语言是否显得苍白许多我们尽量以贴代码为主 首先我们从HttpContext.Request.Cookies对象下手public abstract class HttpRequest {...public abstract IRequestCookieCollection Cookies { get; set; }... } 从代码可以可看出Cookies是一个IRequestCookieCollection接口类型它的实现类型为RequestCookieCollection接口代码如下 //从接口代码看该类是一个只读类为什么会是只读类这也不难理解Request是一个请求对象也就是客户端发往服务器的数据因为这些数据是供我们来读取验证用的所以修改并没有什么意义 public interface IRequestCookieCollection : IEnumerableKeyValuePairstring, string, IEnumerable {string this[string key] { get; }int Count { get; }ICollectionstring Keys { get; }bool ContainsKey(string key);bool TryGetValue(string key, out string value); } 然后我们再来分析header中的cookies是如何被解析到Request中的Cookies对象的 DefaultHttpRequest是如何实现HttpRequest的 public class DefaultHttpRequest : HttpRequest {...//这是一个委托对象用于生成RequestCookiesFeature实例private readonly static FuncIFeatureCollection, IRequestCookiesFeature _newRequestCookiesFeature f new RequestCookiesFeature(f);...//这个方法属性展示了如何去实例化RequestCookiesFeature对象private IRequestCookiesFeature RequestCookiesFeature _features.Fetch(ref _features.Cache.Cookies, _newRequestCookiesFeature);//这里直接调用RequestCookiesFeaturepublic override IRequestCookieCollection Cookies{get { return RequestCookiesFeature.Cookies; }set { RequestCookiesFeature.Cookies value; }} } RequestCookiesFeature.Cookies才是真正触发cookies解析的地方: public class RequestCookiesFeature : IRequestCookiesFeature{public IRequestCookieCollection Cookies{get{...//从请求中获取header信息headers是一个IDictionarystring,StringValues类型var headers HttpRequestFeature.Headers;StringValues current;//从headers字典类型中获取cookies的信息这里获取的current结果是个字符串类型if (!headers.TryGetValue(HeaderNames.Cookie, out current)){current string.Empty;}if (_parsedValues null || _original ! current){_original current;//这里开始将cookies字符串解析为cookies集合类型_parsedValues RequestCookieCollection.Parse(current.ToArray());}} }//RequestCookieCollection.Parse代码如下 public class RequestCookieCollection : IRequestCookieCollection {public static RequestCookieCollection Parse(IListstring values){...IListCookieHeaderValue cookies;//最有用的一句代码在这里将字符串集合解析为IListCookieHeaderValueif (CookieHeaderValue.TryParseList(values, out cookies)){...}...}}最终CookieHeaderParser才是真正干活的地方 internal class CookieHeaderParser : HttpHeaderParserCookieHeaderValue{public sealed override bool TryParseValue(StringSegment value, ref int index, out CookieHeaderValue parsedValue){...}} 将cookies写入http中 我们先来看看Response.Cookies.Append是如何实现的 Response.Cookies是一个HttpRespnse对象而ResponseCookies则是IResponseCookies的默认实现public class ResponseCookies : IResponseCookies { //通过Append方法来添加cookiepublic void Append(string key, string value){//这里构造一个cookie对象var setCookieHeaderValue new SetCookieHeaderValue(Uri.EscapeDataString(key),Uri.EscapeDataString(value)){Path /};//然后cookie对象序列化字符串因为在http协议中cookie的值就是字符串var cookieValue setCookieHeaderValue.ToString();//最后将cookie字符串添加到Headers中StringValues.Concat将两个字符串转换成string[]//Headers是个字典类型所有header中数据都是以k-v的形式保存在这个字典中Headers[HeaderNames.SetCookie] StringValues.Concat(Headers[HeaderNames.SetCookie], cookieValue);} 看一下Headers的实现 HttpResponseHeaders负责将header信息写入响应流 public partial class HttpResponseHeaders : HttpHeaders { internal void CopyTo(ref BufferWriterPipeWriter buffer){//这个方将负责将headers通过流的形式写入响应结果 CopyToFast(ref buffer);...} }总结及感想 ​ 本文介绍了我对cookies的理解以及asp.net core中cookies是怎么实现的对于所有web框架的实现都是大同小异的如果还有什么不明的地方最好自己能多读几遍代码多看多思考最总一切问题都会迎刃而解。转载于:https://www.cnblogs.com/guodf/p/9609384.html
http://www.yutouwan.com/news/393924/

相关文章:

  • 简述网站制作方案和主要内容酒店代理分销平台
  • 郑州制作网站软件网站和做游戏
  • 能打开各种网站的浏览器推荐凡科建站怎样建站中站
  • 纯静态 网站神马收录提交入口
  • 一个公司网站备案吗贵阳小程序开发
  • 服装网站建设平台分析广州注册公司流程及费用
  • 企业网站前端模板电子商务网站建设 教学ppt
  • 网站建设龙兵科技燕郊网站制作多少钱
  • 中国风网站配色方案外贸网站开发莆田
  • 怎么做网站 ppt商城网站建设付款怎么实现
  • 高端网站设计价格拉丝机东莞网站建设
  • 工程建设企业网站五百亿网站建设
  • 专门做婚纱儿童摄影网站网站建设重庆
  • 网站前台界面模板下载html网页制作兼职平台
  • 常州小型网站建设wordpress数据表不可用
  • 在Vs中做网站接口企业网站建设原则是( )
  • 用iis为公司做一个内部网站企业网是什么类型
  • 电商网站建设概念温州市建设小学大南网站
  • 模板网站建设珠海网络营销课程报告
  • 青田县建设局网站广告图片网站
  • 东营有网站建筑网页设计详情
  • 手表网站建设规划书vivo应用商店
  • 做网站开发服务商阿里巴巴外贸平台下载
  • 高端旅游网站建设仿煎蛋 wordpress
  • 国家建设工程网站公司企业安全文化内容范本
  • 网站优化 情况德尔普网络做网站怎么样
  • 网站里的注册怎么做软件技术是什么专业
  • wordpress 网站图标设置音乐网站建设需求分析
  • 建个人网站的详细步骤印度做杂质的网站
  • 安卓网站开发wordpress网站商务通