HTTP是什么,HTTP起源含义作用详解

作者:小易整编 来源:小易整编 2022-06-27 03:26

HTTP是什么?

HTTP(HyperText Transfer Protocol 超文本传输协议)是互联网上应用最为广泛的一种网络协议,它是由万维网协会(World Wide Web Consortium)制定发布。

文章主要以一次HTTP请求的整个过程来讲解(DNS解析不讲):HTTP起源、TCP/IP协议、建立TCP连接、客户端请求、服务端响应、断开TCP连接,文章最后还捎带讲了与HTTP相关知识。文章较长,建议收藏或转发后阅读!(共计五千字,阅读完大概需要20分钟)
HTTP是什么,HTTP起源含义作用详解

一、HTTP简介

1.HTTP起源

今天我们能够在网络中畅游,都得益于一位计算机科学家蒂姆·伯纳斯·李的构想。1991年8月6日,蒂姆·伯纳斯·李在位于欧洲粒子物理研究所(CERN)的NeXT计算机上,正式公开运行世界上第一个Web网站(http://info点cern点ch ),建立起基本的互联网基础概念和技术体系,由此开启了网络信息时代的序幕。
HTTP是什么,HTTP起源含义作用详解
伯纳斯·李的提案包含了网络的基本概念并逐步建立了所有必要的工具:

  1. 提出HTTP (Hypertext Transfer Protocol) 超文本传输协议,允许用户通过单击超链接访问资源;

  2. 提出使用HTML超文本标记语言(Hypertext Markup Language)作为创建网页的标准;

  3. 创建了统一资源定位器URL (Uniform Resource Locator)作为网站地址系统,就是沿用至今的http://www URL格式;

  4. 创建第一个Web浏览器,称为万维网浏览器,这也是一个Web编辑器;

  5. 创建第一个Web服务器(http://info点cern点ch)以及描述项目本身的第一个Web页面。

2.HTTP特点

HTTP 协议一共有五大特点:

  1. 支持客户/服务器模式。

  2. 简单快速:

    客户向服务器请求服务时,只需传送请求方法和路径。

  3. 灵活:

    HTTP允许传输任意类型的数据对象。

    正在传输的类型由Content-Type(Content-Type是HTTP包中用来表示内容类型的标识)加以标记。

  4. 无连接:

    无连接的含义是限制每次连接只处理一个请求。

    服务器处理完客户的请求,并收到客户的应答后,即断开连接。

    采用这种方式可以节省传输时间。

  5. 无状态:

    无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。

    即我们给服务器发送 HTTP 请求之后,服务器根据请求,会给我们发送数据过来,但是,发送完,不会记录任何信息(Cookie和Session孕育而生,后期再讲)。

二、TCP/IP协议

我们经常听到一句话就是:HTTP是一个基于TCP/IP协议簇来传递数据。

如何理解上面那句话?我们来看看TCP/IP四层模型就明白了。
HTTP是什么,HTTP起源含义作用详解
从上图我们可以清晰的看到HTTP使用的传输层协议为TCP协议,而网络层使用的是IP协议(当然还使用了很多其他协议),所以说HTTP是一个基于TCP/IP协议簇来传递数据。

同样我们可以看到ping走的ICMP协议,这也就是为什么有时候我们开vps可以上网,但是ping google却ping不通的原因,因为走的是不同的协议。

那TCP/IP协议簇大致是如何工作的,我们再来看看下图:
HTTP是什么,HTTP起源含义作用详解
我们可以看到在数据发送端是一层一层封装数据,数据接收端一层一层拆封,最后应用层获得数据。

三、建立TCP连接

我们知道了TCP/IP协议簇大致的工作原理之后,我们来看看HTTP是如何建立连接的。

1.TCP包头信息

前面咱们讲过HTTP是一个基于TCP/IP协议簇来传递数据,所以这HTTP建立连接也就是建立TCP连接,TCP如何建立连接,一起来看看TCP包信息结构吧。
HTTP是什么,HTTP起源含义作用详解
TCP报文包=TCP头信息+TCP数据体,而在TCP头信息中包含了6种控制位(上图红色框中),这六种标志位就代表着TCP连接的状态:

  1. URG:

    紧急数据(urgent data)—-这是一条紧急信息

  2. ACK:

    确认已收到

  3. PSH:

    提示接收端应用程序应该立即从tcp接收缓冲区中读走数据

  4. RST:

    表示要求对方重新建立连接

  5. SYN:

    表示请求建立一个连接

  6. FIN:

    表示通知对方本端要关闭连接了

2.建立连接过程

了解了TCP包头信息之后,我们就可以正式看看TCP建立连接的三次握手了。
HTTP是什么,HTTP起源含义作用详解
三次握手讲解:

  1. 客户端发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,服务器由SYN=1知道客户端要求建立联机(客户端:

    我要连接你)

  2. 服务器收到请求后要确认联机信息,向A发送ack number=(客户端的seq+1),syn=1,ack=1,随机产生seq=7654321的包(服务器:

    好的,你来连吧)

  3. 客户端收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,客户端会再发送ack number=(服务器的seq+1),ack=1,服务器收到后确认seq值与ack=1则连接建立成功。

    (客户端:

    好的,我来了)

面试官:为什么http建立连接需要三次握手,不是两次或四次
答:三次是最少的安全次数,两次不安全,四次浪费资源

四、HTTP客户端请求

客户端与服务器连接上了之后,客户端就可以开始向服务器请求资源,就可以开始发送HTTP请求了。

1.HTTP请求报文结构

我们之前说过TCP报文包=TCP头信息+TCP数据体,TCP头信息我们已经讲了,现在来讲TCP数据体,也就是我们的HTTP请求报文。
HTTP是什么,HTTP起源含义作用详解

2.HTTP请求实例

来看看实际的HTTP请求例子:
HTTP是什么,HTTP起源含义作用详解

  1. ①是请求方法,HTTP/1.1 定义的请求方法有8种:

    GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS、TRACE,最常的两种GET和POST,如果是RESTful接口的话一般会用到GET、POST、DELETE、PUT

  2. ②为请求对应的URL地址,它和报文头的Host属性组成完整的请求URL

  3. ③是协议名称及版本号

  4. ④是HTTP的报文头,报文头包含若干个属性,格式为“属性名:属性值”,服务端据此获取客户端的信息

  5. ⑤是报文体,它将一个页面表单中的组件值通过param1=value1&param2=value2的键值对形式编码成一个格式化串,它承载多个请求参数的数据。

    不但报文体可以传递请求参数,请求URL也可以通过类似于“/chapter15/user.html? param1=value1&param2=value2”的方式传递请求参数。

请求头参数非常多,猪哥就不一一说明,只说明两个低级的反扒参数:

  1. User-Agent:

    客户端使用的操作系统和浏览器的名称和版本,有些网站会限制请求浏览器

  2. Referer:

    先前网页的地址,表示此请求来自哪里,有些网站会限制请求来源

五、HTTP服务端响应

服务器在收到客户端请求处理完需要响应并返回给客户端,而HTTP响应报文结构与请求结构体一致。

1.HTTP响应报文结构

HTTP是什么,HTTP起源含义作用详解

2.HTTP响应实例

HTTP是什么,HTTP起源含义作用详解

3.响应状态码

响应报文中我们重点关注下:服务器的响应状态码,面试也很容易问到,下面猪哥只列出分类,详细状态码自行上网查找了解。

六、断开连接

在服务器响应完毕后,一次会话就结束了,请问这时候连接会断开吗?

1.长短连接

是否断开我们需要区分HTTP版本:

  • 在HTTP/1.0版本的时候,客户端与服务器完成一个请求/响应之后,会将之前建立的TCP连接断开,下次请求的时候又要重新建立TCP连接,这也被称为短连接

  • 在HTTP1.0发布仅半年后(1997年1月) ,HTTP/1.1版本发布并带来一个新的功能:

    在客户端与服务器完成一次请求/响应之后,允许不断开TCP连接,这意味着下次请求就直接使用这个TCP连接而不再需要重新握手建立新连接,这也被称为长连接

注意:长连接是指一次TCP连接允许多次HTTP会话,HTTP永远都是一次请求/响应,会话结束,HTTP本身不存在长连接之说。

早在1999年HTTP1.1就推广普及,所以现在浏览器在请求时请求头中都会携带一个参数:Connection:keep-alive,这表示浏览器要求与服务器建立长连接,而服务器也可以设置是否愿意建立长连接。

2.长连接优缺点

对于服务器来说建立长连接有优点也有缺点:

  • 优点:

    当网站中有大量静态资源(图片、css、js等)就可以开启长连接,这也几张图片就可以通过一次TCP连接发送。

  • 缺点:

    当客户端请求一次时候不在请求,而服务器却开着长连接资源被占用着,这是严重浪费资源。

所以是否开启长连接,长连接时间都需要根据网站自身来合理设置。

ps:大家不要小看这一个TCP连接,在一次客户端HTTP完整的请求中(DNS寻址、建立TCP连接、请求、等待、解析网页、断开TCP连接)建立TCP连接占用的时间比还是很大的。

3.断开连接过程

在建立TCP连接时是三次握手,而断开TCP连接是四次挥手!
HTTP是什么,HTTP起源含义作用详解
在前面讲TCP/IP协议时我们说过标志位:FIN表示通知对方本端要关闭连接了,那断开连接为何需要四次挥手呢?这里给大家的课后作业,可以在留言中给出你的理解,看看是否正确。

七、题外话

1.面试必考题:http三次握手、四次挥手

面试官:为何建立连接需要三次握手而关闭连接却需要四次挥手。给大家的课后作业,在留言中给出你的见解!

2.http2.0

HTTP是什么,HTTP起源含义作用详解
HTTP/1.1已经为我们服务了20年,而HTTP/2.0其实在2015就发布了,但是还没有推广开来,关于HTTP/2.0新特性大家也可以去网上查阅相关资料

3.http&rpc

因为http响应慢、请求头体积大等缺点,所以在微服务时代,大家都使用rpc来调用服务,rpc相关概念感兴趣同学自行网上学习。

4.http&https

http还有两个很大的缺点就是明文且不能保证完整性,所以目前会渐渐被HTTPS代替。



本文地址:武汉SEO顾问频道 http://www.hkm168.com/seojiaocheng/8905.html,武汉易企推公司是一家专业的武汉网络推广,百度开户竞价托管,SEO网站优化公司,提供一站式全网营销服务:小程序开发,网站建设,SEO百度排名,SEM竞价托管,百度推广开户、360搜狗百度竞价开户、百度地图标注、百科词条创建修改、微信公众号代运营、公司负面公关处理等;另外,转载本文请保留本文地址,本站部分文章图片来自网络,本着互联网分享精神,如有侵犯到您的权益,请告知我们删除,谢谢!


相关文章相关文章
  • https://与http://的区别是什么,https://与http://工作原理

    https://与http://的区别是什么,https://与http://工作原理

    https://与http://的区别是什么,https://与http://工作原理,HTTPS和HTTP的区别主要如下:1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。2、http是超文本传输协议,信息是明文传...

    2022-06-28 05:06
  • HTTPS是什么意思,HTTPS与HTTP的区别详解

    HTTPS是什么意思,HTTPS与HTTP的区别详解

    一,什么是HTTPS?HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议...

    2022-06-27 04:06
  • HTTP是什么,HTTP起源含义作用详解

    HTTP是什么,HTTP起源含义作用详解

    HTTP是什么?HTTP(HyperText Transfer Protocol 超文本传输协议)是互联网上应用最为广泛的一种网络协议,它是由万维网协会(World Wide Web Consortium)制定发布。文章主要以一次HTTP请...

    2022-06-27 03:06
  • HTTP状态码有哪些,HTTP状态码大全及其含义

    HTTP状态码有哪些,HTTP状态码大全及其含义

    大家都知道,每一个HTTP响应都会带有一个状态码,不过对于很多开发者来说,平时使用最多的几个状态码无外乎就是200、400、404、500等。那其他众多状态码该应用在何种场景中,什么时候应该使用哪些状态码就成为一个值得我们深入思考的问题了。...

    2022-06-27 02:06
  • http://代表什么,为么网站域名前面都要加http://

    http://代表什么,为么网站域名前面都要加http://

    http://代表着含义是超文本传输协议(HTTP,Hyper Text Transfer Protocol)是访问万维网使用的核心通信协议,也是今天所有Web应用都会使用的协议。HTTP协议虽然被广泛应用于Web应用之中,但由于其传输时的...

    2022-06-24 02:06
  • HTTP协议是什么协议,http协议特点用法详解

    HTTP协议是什么协议,http协议特点用法详解

    什么是HTTP协议?协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,HTTP协议(超文本传输协议)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。HTTP协议,即超文本传输...

    2022-06-24 11:06
湖北SEO
孝感seo 十堰seo 恩施seo 咸宁seo 荆州seo 荆门seo 黄冈seo 黄石seo 襄阳seo 宜昌seo 随州seo 鄂州seo 天门seo 潜江seo 北京seo 天津seo 上海seo 重庆seo 西宁seo 拉萨seo 乌鲁木齐seo 武汉SEO优化 湖北网站建设 百度推广开户 巨量千川开户 危机公关处理 百度百科创建
河北SEO
石家庄seo 唐山seo 邯郸seo 保定seo 沧州seo 邢台seo 廊坊seo 承德seo 张家口seo 衡水seo 秦皇岛seo 河北网站建设 石家庄网站建设 河南网站建设 郑州网站建设
河南SEO
郑州seo 开封seo 洛阳seo 平顶山seo 焦作seo 鹤壁seo 新乡seo 安阳seo 濮阳seo 许昌seo 漯河seo 三门峡seo 南阳seo 商丘seo 信阳seo 周口seo 驻马店seo 济源seo
湖南SEO
长沙seo 株洲seo 湘潭seo 衡阳seo 邵阳seo 岳阳seo 常德seo 张家界seo 益阳seo 郴州seo 永州seo 怀化seo 娄底seo 湘西seo 湖南网站建设 长沙网站建设
江西SEO
南昌seo 九江seo 景德镇seo 上饶seo 鹰潭seo 抚州seo 宜春seo 新余seo 萍乡seo 吉安seo 赣州seo 江西网站建设 南昌网站建设
安徽SEO
合肥seo 黄山seo 芜湖seo 马鞍seo 安庆seo 淮南seo 阜阳seo 淮北seo 铜陵seo 亳州seo 宣城seo 蚌埠seo 六安seo 池州seo 滁州seo 宿州seo 安徽网站建设 合肥网站建设
山东SEO
济南seo 青岛seo 淄博seo 枣庄seo 东营seo 烟台seo 潍坊seo 济宁seo 泰安seo 威海seo 日照seo 临沂seo 德州seo 聊城seo 滨州seo 菏泽seo 山东网站建设 济南网站建设
江苏SEO
南京seo 无锡seo 徐州seo 常州seo 苏州seo 南通seo 连云港seo 淮安seo 盐城seo 扬州seo 镇江seo 泰州seo 宿迁seo 江苏网站建设 南京网站建设
浙江SEO
杭州seo 湖州seo 嘉兴seo 金华seo 丽水seo 宁波seo 衢州seo 绍兴seo 台州seo 温州seo 舟山seo 浙江网站建设 杭州网站建设
福建SEO
福州seo 厦门seo 泉州seo 漳州seo 莆田seo 宁德seo 龙岩seo 三明seo 南平seo 福建网站建设 福州网站建设 北京网站建设 天津网站建设 上海网站建设 重庆网站建设 拉萨网站建设 乌鲁木齐网站建设 西宁网站建设
海南SEO
海口seo 三亚seo 三沙seo 儋州seo 网站建设公司 营销型网站 高端网站建设 模板网站制作 武汉APP开发 微信小程序开发 海南网站建设 海口网站建设
广东SEO
广州seo 深圳seo 珠海seo 汕头seo 佛山seo 韶关seo 湛江seo 肇庆seo 江门seo 茂名seo 惠州seo 梅州seo 汕尾seo 河源seo 阳江seo 清远seo 东莞seo 中山seo 潮州seo 揭阳seo 云浮seo 广东网站建设 广州网站建设 深圳网站建设
广西SEO
南宁seo 桂林seo 柳州seo 梧州seo 钦州seo 北海seo 玉林seo 贵港seo 防城港seo 百色seo 崇左seo 来宾seo 贺州seo 河池seo 广西网站建设 南宁网站建设
云南SEO
昆明seo 曲靖seo 玉溪seo 昭通seo 保山seo 丽江seo 普洱seo 临沧seo 德宏seo 怒江seo 迪庆seo 大理seo 楚雄seo 红河seo 文山seo 西双版纳seo 云南网站建设 昆明网站建设
贵州SEO
贵阳seo 遵义seo 六盘水seo 安顺seo 毕节seo 铜仁seo 黔东南seo 黔南seo 黔西南seo 贵州网站建设 贵阳网站建设
四川SEO
成都seo 自贡seo 攀枝花seo 泸州seo 德阳seo 绵阳seo 广元seo 遂宁seo 内江seo 乐山seo 南充seo 眉山seo 宜宾seo 广安seo 达州seo 雅安seo 巴中seo 资阳seo 阿坝seo 甘孜seo 凉山seo 四川网站建设 成都网站建设
山西SEO
太原seo 大同seo 朔州seo 忻州seo 阳泉seo 吕梁seo 晋中seo 长治seo 晋城seo 临汾seo 运城seo 山西网站建设 太原网站建设
陕西SEO
西安seo 宝鸡seo 咸阳seo 铜川seo 渭南seo 延安seo 榆林seo 汉中seo 安康seo 商洛seo 陕西网站建设 西安网站建设
甘肃SEO
兰州seo 嘉峪关seo 金昌seo 白银seo 天水seo 武威seo 张掖seo 平凉seo 酒泉seo 庆阳seo 定西seo 陇南seo 临夏seo 甘南seo 甘肃网站建设 兰州网站建设
宁夏SEO
银川seo 石嘴山seo 吴忠seo 固原seo 中卫seo 宁夏网站建设 银川网站建设 网络推广技巧 网络营销知识 武汉SEO顾问 百度竞价托管 IT知识百科 IT疑问解答
内蒙古SEO
呼和浩特seo 包头seo 乌海seo 赤峰seo 通辽seo 鄂尔多斯seo 呼伦贝尔seo 巴彦淖尔seo 乌兰察布seo 内蒙古网站建设 呼和浩特网站建设
辽宁SEO
沈阳seo 大连seo 鞍山seo 抚顺seo 本溪seo 丹东seo 锦州seo 营口seo 阜新seo 辽阳seo 盘锦seo 铁岭seo 朝阳seo 葫芦岛seo 辽宁网站建设 沈阳网站建设
吉林SEO
长春seo 四平seo 辽源seo 通化seo 白山seo 松原seo 白城seo 延边seo 吉林网站建设 长春网站建设 百科知识 问答解惑 武汉公司注册 公司注册 代理记账
黑龙江SEO
哈尔滨seo 齐齐哈尔seo 鹤岗seo 双鸭山seo 鸡西seo 大庆seo 伊春seo 牡丹江seo 佳木斯seo 七台河seo 黑河seo 绥化seo 黑龙江网站建设 哈尔滨网站建设
本地企业
              可提供上门服务

便捷

本地企业可提供上门服务

提供适合、专业可行方案

周到

提供适合、专业可行方案

5-10分钟售后响应机制<

贴心

5-10分钟售后响应机制

按效果收费,无效果不收费

放心

按效果收费,无效果不收费

行业高标准,效果稳定可靠

稳定

行业高标准,效果稳定可靠

1-3个月排名上百度首页

快速

1-3个月排名上百度首页

武汉易企推网络公司;公司地址:武汉市武昌区静安路6号5.5创意产业园4楼;公司官网:http://www.hkm168.com XML地图

服务热线:18120550335 (同微信,广告无扰) 欢迎来电咨询; 联系QQ:1193073039

Copyrigh©2017-2030 版权所有:武汉易企推网络科技有限公司 备案号:鄂ICP备17012199号 网站地图 手机站