首页 / C# / c# – 解析HTTP头字段值的每个部分
c# – 解析HTTP头字段值的每个部分
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 解析HTTP头字段值的每个部分,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1150字,纯文字阅读大概需要2分钟。
内容图文
![c# – 解析HTTP头字段值的每个部分](/upload/InfoBanner/zyjiaocheng/807/759b13d5710949d8b8197f34ab4b5599.jpg)
我正在直接从数据包中解析HTTP数据(无论是TCP重构还是非重构,你都可以认为是这样).
我正在寻找尽可能准确地解析HTTP的最佳方法.
这里的主要问题是HTTP标头.
看一下基本的RFC of HTTP/1.1,似乎HTTP头解析会很复杂.
RFC描述了标头不同部分的非常复杂的正则表达式.
我应该编写这些正则表达式来解析HTTP头的不同部分吗?
到目前为止我为HTTP标头编写的基本解析是针对通用HTTP标头:
message-header = field-name ":" [ field-value ]
我已经包括用SP替换内部LWS并使用逗号分隔值重复具有相同字段名称的标头,如4.2节所述.
但是,以第14.9节为例,可以看出,为了解析字段值的不同部分,我需要一个更复杂的解析方案.
您如何建议我应该处理HTTP解析的复杂部分(特别是字段值),假设我想为解析器用户提供HTTP的全部功能并解析HTTP的每个部分?
对此的设计建议也将不胜感激.
谢谢.
解决方法:
我会遵循单一责任的原则.而不是试图创建一个单一的整体解析器,它可以了解人类已知的每个HTTP头的每个细节,而不是更简单.编写一个简单的可扩展解析器,它本身只负责处理解析字段名称并将该名称与原始值相关联.然后使用可插入的扩展,它只负责解析一种类型的头.在创建解析器的实例时,请注入一组扩展,并将每个扩展映射到它知道如何解析的一组字段名称.
用这种方法你一石二鸟.您的核心解析器仍然简单且有针对性.您还可以扩展解析器,而不必乱用它的内容,从而产生更强大的代码.
内容总结
以上是互联网集市为您收集整理的c# – 解析HTTP头字段值的每个部分全部内容,希望文章能够帮你解决c# – 解析HTTP头字段值的每个部分所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。