宿迁腾云网络网站建设公司

腾云网络 八年经验专注网站建设
  • 首页
  • 服务项目
    • 网站建设
    • 微信小程序
    • APP开发
    • SEO优化
  • 建站费用
  • 成功案例
    • 网站建设案例
    • 小程序案例
    • APP开发案例
    • SEO优化案例
  • 行业动态
    • 网站建设
    • SEO优化
    • 技术日志
  • 联系我们
    • 关于我们
首页 > 行业动态 > SEO优化 > 优化知识之快速掌握HTTP协议让协议更友好

优化知识之快速掌握HTTP协议让协议更友好

2019-05-14

HTTP 协议极其庞杂,它影响着浏览器、爬虫、代理服务器、防火墙、CDN、Web 容器、微服务等诸多方面,自身的规范却并不统一,所要面对的各类软件的新旧版本也同时存在于网络上。在这种情况下,如果对 HTTP 没有一个深入的理解,就很容易被各种各样的网络问题难倒。

那么,如何才能快速掌握HTTP协议呢?

在我看来,需要从以下四个方面入手:

  1. 工欲善其事,必先利其器,首先我们先要掌握好抓包及相关的工具,这样在分析各种网络协议时也就更加得心应手。

  2. 先从架构入手,搞清楚 HTTP 协议到底想解决什么问题,面临哪些非功能性的约束,又是怎样一步步发展变迁至今的。

  3. 熟悉协议格式,对隧道或者正向代理下的 URI 格式、对多表述包体和不定长包体的传输格式要了解,对 DNS 的 QUESTION/ANSWER 也要了解。

  4. 掌握应用场景,跨域访问与同源策略到底在纠结什么?代理服务器上的共享缓存如何精细化控制?

先给大家分享我整理的 HTTP 学习知识图谱,你可以收藏起来,时不时地拿出来对照:

优化知识之快速掌握HTTP协议让协议更友好(图1)

(高清图看这篇:http://note.youdao.com/noteshare?id=56e65085e89f449feb5804a887dbf058&sub=68510F5CB15E46C6BFA7021506A65330)

下面,我们来一一详述这四个方面。

1、用好工具

学好HTTP协议,至少要用到下面4个工具:

1.1 Chrome Network抓包面板

这个工具有4个优点:

  • 快速分析HTTP请求

  • 便捷卸载TLS/SSL内容

  • 可协助分析页面加载性能

  • 方便分析websocket内容

该工具包含5个面板,在过滤器的Filter输入栏中还支持复杂的属性过滤,在请求列表中可以看到请求的上下游,亦能看到每个请求的时间分布。


1.2 telnet

这个小工具主要用于构造原始的应用层协议,帮助我们理解HTTP实际在网络中传输的格式是什么样的。

1.3 curl

telnet有2个问题:

1、太过繁琐,每次要输入完整的请求。实际我们可能只是想改一下方法或者某个HEADER头部。

2、不支持HTTPS,不支持包体压缩,导致无法向某些站点发起请求。

而curl完美解决了这些问题。它也用于构造定制化的HTTP请求,并可以分析HTTP响应头部或者包体。

1.4 Wireshark

这是学习完整Web协议栈的必备工具,我们可以在服务器端用tcpdump抓包后,在可视化的Wireshark上便捷分析。

Wireshark功能极为强大:

  • 既支持BPF捕获过滤器,也支持分析时的显示过滤器;

  • 通过流跟踪或者会话图标,我们可以轻松的以session会话为单位进行分析;

  • 通过可配置的着色规则,但以不同的色彩帮助我们轻松找出有问题的报文;

  • 通过报文的标注及导出,以及文件的合并、时间的平移,可以轻松将多台机器上的抓到的报文放在一起分析对比;

  • 既可以通过Packet Detail中看到每层报文解析出的可读值,也能在Packet Byte中看到二进制流。

  • 支持报文统计,对大量HTTP报文的分析非常方便!

2、理解架构

要理解HTTP的架构,需要从以下4个方面入手:

2.1 HTTP协议想解决什么问题?

HTTP协议设计之初用于解决人与机器间的通讯,所谓“B/S架构”中的浏览器是我们必须考虑进的因素。

因此,HTTP协议需要传输超媒体数据(包括图片、视频等大粒度数据)。

当然,现在许多物联网中的设备也在使用HTTP协议,所以,它也在解决机器与机器间的通讯。

当然,网络爬虫也是HTTP协议要面对的问题,robots.txt这样的规范也应运而生。

2.2 HTTP协议面对哪些非功能性约束?

主要包括以下5个方面:

  • 高可扩展性,因为它需要面对全世界用户群体以及数十年以上的寿命

  • 低门槛,既有使用门槛也包括开发门槛,JavaApplet的式微与Javascript的如日中天就是极好的例证

  • 分布式环境下的大粒度数据传输

  • internet下无法控制的负载以及种类版本繁多的组件

  • 向前兼容,HTTP/1.1中的许多特性都需要照顾到还有仅支持HTTP/1.0的代理服务器在互联网上运行

2.3 遵循的架构设计方案是怎样的?

HTTP/1.1是完全遵循REST架构设计,而REST架构主要包含以下4个子架构:

  • LCS:空间上分层的客户端服务器,因此我们才有了隧道、代理、网关、CDN、负载均衡等产品;

  • CSS:无状态的客户端服务器,因此我们才有了Request/Response请求模式,才要求cookie头部或者URL不能超过4K等。

  • COD:按需代码,即将代码从服务器移至客户端再运行,今天的前端生态都是基于此架构下而生的Javascript衍伸的。

  • $:缓存,HTTP组件中无处没有缓存,共享缓存、私有缓存,没指明缓存时限还要预估一个缓存过期值。

2.4 HTTP协议特性有哪些?

首先,我们需要理解它在OSI概念模型的哪一层,它又是处在TCP/IP体系的什么位置。

其次,我们可以从上述架构中推导出它的定义:一种无状态的、应用层的、以请求/应答方式运行的协议,它使用可扩展的语义和自描述消息格式,与基于网络的超文本信息系统灵活的互动!

3、熟悉协议格式

学习HTTP协议格式时,应从以下3个方面入手:

3.1 扩充巴科斯-瑙尔范式:ABNF元语言

元语言可用于描述协议格式,而ABNF就严谨定义了HTTP的格式。

ABNF并不复杂,只需要我们花10分钟即可学会,它包括操作符和核心规则2大部分,这里不再列出。

3.2 HTTP协议格式

掌握HTTP协议格式需要理清一个树状知识图,参见本文末尾我整理的HTTP知识图谱。

3.3 DNS协议格式

我们需要掌握3个方面的知识:

  • DNS报文是基于UDP的,它的通用格式是固定的,需要理解各字段含义

  • Questions部分需要重点看QNAME域名是如何编码的,以及QTYPE的含义

  • Answers部分字段更多,特别是对NAME及RDATA部分的偏移表示法要有所了解

4、掌握应用场景

HTTP的应用场景极其广泛,下面我列出常见的9个场景,在协议格式中提到的各方法、响应码、头部、包体编码方式都与具体场景相关。

4.1 内容如何协商

响应式协商由于RFC规范不明少有使用,而主动式协商关于语言、编码、媒体类型等是我们日常打交道的常见方式。

4.2 FORM表单如何提交

表单提交虽然有3种编码方式,但最常用的还是boundary分隔的多表述共存于单一包体的方式,waf防火墙必须考虑如何应用这种包体内的SQL注入攻击。

4.3 Range请求的使用

传输大文件所用到的断点续传和多线程下载,都需要使用Range规范,为防止多请求下载过程中服务器端更新的情况,还引入条件请求If-Range。

4.4 Cookie与Session的设计

Set-Cookie中有许多属性,既有限制有效期的expires-av、max-age-av,也有限制使用范围的domain-av、path-av,还有限制协议的secure-av或是限制使用对象的httponly-av。

这种种限制都在针对浏览器使用cookie是否安全,而同时为了便利性浏览器也支持第三方cookie,这更是为厂商搜集用户信息提供了方便。

4.5 浏览器同源策略与跨域请求

同源策略是浏览器所做的限制,如果我们直接基于网络库处理响应是不受此限制的。所以,这个同源策略的有效性非常依赖浏览器的实现。当然,同源策略中不包含防范CSRF攻击,服务器通常基于token策略解决CSRF攻击。

安全与便利是必须权衡取舍的,为了增加便利性,必须允许AJAX的跨域请求,于是CORS便诞生了。

4.6 条件请求

条件请求不只可应对多线程下载时的资源中途变量,也可针对多人协作的wiki系统生效,同时也能用于缓存更新。实际在Restful API设计中它大有发挥余地。

4.7 共享缓存与私有缓存

当下的互联网上缓存无处不在,即使服务器上没有配置某些资源可以缓存,浏览器也在想尽办法预估出一段时间缓存资源。因为,缓存能够极大的提升用户体验、降低网络负载!能够控制缓存的HTTP头部非常多,它不只控制缓存的有效期,也在控制缓存依据的关键字。

4.8 重定向的应用

关于重定向我们需要从2个维度4个象限去理解:可更改方法 | 不可更改方法、可缓存|不可缓存

这便引出了301、302、303、307、308这5种不同的响应状态码。

4.9 网络爬虫

爬虫无处不在,远不只久远的搜索引擎爬虫,当下在出行(例如12306火车票或者亚航)、电商、社交(新浪微博)等都广受爬虫骚扰,爬虫不只爬取信息,还模拟人类制造行为,例如许多抢票机、僵尸粉都如此。而另一方面,为了欢迎google/baidu的爬虫,又诞生了各种SEO策略及教程,还有许多利用PageRank漏洞提升关键词排名的商家在以此盈利。所以,理解爬虫的工作方式也是非常重要的。

当然,HTTP应用场景远不止这些,但彻底掌握这些场景将使我们完全理解HTTP协议中常见的方法、头部、响应码等等。

HTTP 协议是 Web 协议里非常重的一块,作为程序员,无论你是前后端工程师,还是运维测试,如果 想面试更高的职位,或者要站在更高的角度去理解技术业务架构,并能在问题出现时快速、高效地解决问题,Web 协议一定是你绕不过去的一道坎。 熟练掌握各种常用 Web 协议,可以帮你在工作中轻松应对各种网络难题。


Tag: http 网络协议 资源 代码 优化
网站制作公众号

宿迁腾云网络网站建设公司 | 网站开发 | 网站制作 | 网站优化

咨询电话:13160355545

上一篇

返回栏目

下一篇

免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。

热推

  • 信息爆炸时代如何找到有效信息?一个的使用方法
  • 网站优化网站图片过多会拖慢打开速度,不利于蜘蛛抓取和用户体验如何优化网站seo优化效果才好
  • SEO要高度重视培训学习,切记没必要图一时之快
  • 网站seo为什么要进行站点SEO优化用,真的应该关注什么seo 网站seo
  • 网站优化接下来网站推广优秀与否的方法有哪些?怎么做?如何优化网站seo优化效果才好
  • 网站seo 网站seo提升网站流量的方法有哪些?有需要规避的地方放心网站seo网站报价
  • 网站优化新网站怎么做SEO,一直都是大家常问的问题网站优化内容分析网站
  • 网站seoSEO网站“排名第一”上线运作了,你准备好了吗?网络seo和网站seo的区别
  • 万词霸屏可品牌推广方案,可为您解决烦恼!
  • 腾云网络大全宁波哒哒网络工作室的高质量商品效劳

相关

网站seo白杨SEO入门学习之搜索引擎百度蜘蛛与网站HTTP

网站seo白杨SEO入门学习之搜索引擎百度蜘蛛与网站HTTP

深入了解 HTML 语义化:提升 SEO 优化的关键

深入了解 HTML 语义化:提升 SEO 优化的关键

网站维护与优化的重要性及页面构造普通化的方法

华为云 CDN:解决在线业务难题,提升用户体验的利器

华为云 CDN:解决在线业务难题,提升用户体验的利器

seo 了解 SEO:企业网络营销的重要策略与专业服务

seo 了解 SEO:企业网络营销的重要策略与专业服务

网站推广方式:Seo 优化与 Sem 付费营销推广的区别及优

网站seo优化可以说无处不在优化前景广阔

网站seo优化可以说无处不在优化前景广阔

网站优化对企业持续繁荣起着至关重要的作用

58UI设计工作室链接的优化清楚的情况下能够分为2个部分

58UI设计工作室链接的优化清楚的情况下能够分为2个部分

怎么去制定一套完整的网站优化方案,网站内容优化

怎么去制定一套完整的网站优化方案,网站内容优化

标签

seo(1182) 市场营销(661) 网站制作(573) 网站建设(564) 搜索引擎(553) 网站(482) PHP(361) 编程语言(345) 建站(294) 关键词排名优化(267) 网站建设公司(245) 优化(216) seo排名(207) 域名(190) 软件(171) 网站优化(148) 搜索引擎优化(146) 外链(141) 科技(136) 网站关键词(124) 网站排名优化(123) 域名服务器(120) 网站排名(107) 时政(103) 排名优化(95) 搜索引擎收录(93) 网站设计(92) 电子商务(88) 引擎(86) 移动互联网(85) 开发框架(79) 开发(75) 网站服务器(74) 框架(68) 前端开发(68) 网站分析(66) 网站建设方案(65) 关键(64) 流量(63) 源码(62) 百度优化(62) 网站权重(61) 开放源代码(59) seo培训(53) 网页设计(51) 百度(51) php框架(50) 网站建设知识(50) 大数据(50) 谷歌(49)
宿迁腾云网络网站建设公司
网站建设
  • 私人定制
  • 标准模板建站
  • 经济模板建站
精品模板

宿迁腾云网络网站建设公司

联系电话:13160355545

公司地址:江苏省宿迁市丽景湾华庭北门都市花园公寓9楼907

联系邮箱:admin@tyweb.net

全国分站
  • 北京
  • 广东
  • 东莞 广州 中山 深圳 惠州 江门 珠海 汕头 佛山 湛江 河源 肇庆 潮州 清远 韶关 揭阳 阳江 云浮 茂名 梅州 汕尾
  • 山东
  • 济南 青岛 临沂 济宁 菏泽 烟台 泰安 淄博 潍坊 日照 威海 滨州 东营 聊城 德州 莱芜 枣庄
  • 江苏
  • 苏州 徐州 盐城 无锡 南京 南通 连云港 常州 扬州 镇江 淮安 泰州 宿迁
  • 河南
  • 郑州 南阳 新乡 安阳 洛阳 信阳 平顶山 周口 商丘 开封 焦作 驻马店 濮阳 三门峡 漯河 许昌 鹤壁 济源
  • 上海
  • 河北
  • 石家庄 唐山 保定 邯郸 邢台 沧州 秦皇岛 张家口 衡水 廊坊 承德
  • 浙江
  • 温州 宁波 杭州 台州 嘉兴 金华 湖州 绍兴 舟山 丽水 衢州
  • 陕西
  • 西安 咸阳 宝鸡 汉中 渭南 安康 榆林 商洛 延安 铜川
  • 湖南
  • 长沙 邵阳 常德 衡阳 株洲 湘潭 永州 岳阳 怀化 郴州 娄底 益阳 张家界 湘西
  • 重庆
  • 福建
  • 漳州 泉州 厦门 福州 莆田 宁德 三明 南平 龙岩
  • 天津
  • 云南
  • 昆明 红河 大理 文山 德宏 曲靖 昭通 楚雄 保山 玉溪 丽江 临沧 思茅 西双版纳 怒江 迪庆
  • 四川
  • 成都 绵阳 广元 达州 南充 德阳 广安 阿坝 巴中 遂宁 内江 凉山 攀枝花 乐山 自贡 泸州 雅安 宜宾 资阳 眉山 甘孜
  • 广西
  • 贵港 玉林 北海 南宁 柳州 桂林 梧州 钦州 来宾 河池 百色 贺州 崇左 防城港
  • 安徽
  • 芜湖 合肥 六安 宿州 阜阳 安庆 马鞍山 蚌埠 淮北 淮南 宣城 黄山 铜陵 亳州 池州 巢湖 滁州
  • 海南
  • 三亚 海口 琼海 文昌 东方
  • 江西
  • 南昌 赣州 上饶 吉安 九江 新余 抚州 宜春 景德镇 萍乡 鹰潭
  • 湖北
  • 武汉 宜昌 襄樊 荆州 恩施 孝感 黄冈 十堰 咸宁 黄石 仙桃 随州 天门 荆门 潜江 鄂州 神农架
  • 山西
  • 太原 大同 运城 长治 晋城 忻州 临汾 吕梁 晋中 阳泉 朔州
  • 辽宁
  • 大连 沈阳 丹东 辽阳 葫芦岛 锦州 朝阳 营口 鞍山 抚顺 阜新 本溪 盘锦 铁岭
  • 黑龙江
  • 齐齐哈尔 哈尔滨 大庆 佳木斯 双鸭山 牡丹江 鸡西 黑河 绥化 鹤岗 伊春 大兴安岭 七台河
  • 内蒙古
  • 赤峰 包头 通辽 呼和浩特 乌海 鄂尔多斯 呼伦贝尔
  • 贵州
  • 贵阳 黔东 黔南 遵义 黔西 毕节 铜仁 安顺 六盘水
  • 甘肃
  • 兰州 天水 庆阳 武威 酒泉 张掖 陇南 白银 定西 平凉 嘉峪关 临夏 金昌 甘南
  • 青海
  • 西宁 海西 海东 海北 果洛 玉树 黄南
  • 新疆
  • 乌鲁木齐 伊犁 昌吉 石河子 哈密
  • 西藏
  • 拉萨 山南 林芝 日喀则
  • 吉林
  • 长春 白山 白城 延边 松原 辽源 通化 四平
  • 宁夏
  • 银川 吴忠 中卫 石嘴山 固原
SiteMap
网站地图
TAG标签
Copyright © 2017-2025 TYWEB.NET 宿迁腾云网络科技有限公司 ALL RIGHTS RESERVED.   苏ICP备17033535号-1

热门搜索

百度 下载 2025 2024 2026 货源 货货源 虚拟 禅道 报名 金蝶KIS旗舰版
  • 客服

    在线客服

  • 电话

    13160355545

  • 微信

精品模板
建站费用
成功案例
联系我们