什么是HTTP协议

超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。

什么是HTTP协议

一、什么是HTTP协议

超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。

HTTP是基于B/S架构进行通信的,而HTTP的服务器端实现程序有httpd、nginx等,其客户端的实现程序主要是Web浏览器,例如Firefox、Internet Explorer、Google Chrome、Safari、Opera等,此外,客户端的命令行工具还有elink、curl等。Web服务是基于TCP的,因此为了能够随时响应客户端的请求,Web服务器需要监听在80/TCP端口。这样客户端浏览器和Web服务器之间就可以通过HTTP进行通信了。

二、工作原理

HTTP是基于客户/服务器模式,且面向连接的。典型的HTTP事务处理有如下的过程:

(1)客户与服务器建立连接;

(2)客户向服务器提出请求;

(3)服务器接受请求,并根据请求返回相应的文件作为应答;

(4)客户与服务器关闭连接。

客户与服务器之间的HTTP连接是一种一次性连接,它限制每次连接只处理一个请求,当服务器返回本次请求的应答后便立即关闭连接,下次请求再重新建立连接。这种一次性连接主要考虑到WWW服务器面向的是Internet中成千上万个用户,且只能提供有限个连接,故服务器不会让一个连接处于等待状态,及时地释放连接可以大大提高服务器的执行效率。

HTTP是一种无状态协议,即服务器不保留与客户交易时的任何状态。这就大大减轻了服务器记忆负担,从而保持较快的响应速度。HTTP是一种面向对象的协议。允许传送任意类型的数据对象。它通过数据类型和长度来标识所传送的数据内容和大小,并允许对数据进行压缩传送。当用户在一个HTML文档中定义了一个超文本链后,浏览器将通过TCP/IP协议与指定的服务器建立连接。

延伸阅读

应用场景

HTTP诞生之初主要是应用于WEB端内容获取,那时候内容还不像现在这样丰富,排版也没那么精美,用户交互的场景几乎没有。对于这种简单的获取网页内容的场景,HTTP表现得还算不错。但随着互联网的发展和WEB2.0的诞生,更多的内容开始被展示(更多的图片文件),排版变得更精美(更多的CSS),更复杂的交互也被引入(更多的JS)。用户打开一个网站首页所加载的数据总量和请求的个数也在不断增加。

今天绝大部分的门户网站首页大小都会超过2M,请求数量可以多达100个。另一个广泛的应用是在移动互联网的客户端app,不同性质的app对HTTP的使用差异很大。对于电商类app,加载首页的请求也可能多达10多个。对于微信这类IM,HTTP请求可能仅限于语音和图片文件的下载,请求出现的频率并不算高。

文章标题:什么是HTTP协议,发布者:E.Z,转载请注明出处:https://worktile.com/kb/p/61438

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
E.ZE.Z认证作者
上一篇 2023年7月22日 下午6:07
下一篇 2023年7月22日

相关推荐

  • 编程 =是什么

    编程是使用编程语言来编写计算机可以理解并执行的指令集合的过程。这些指令告诉计算机如何处理数据和执行任务。编程涉及任务分析、算法定义、代码编写、测试和问题修正等步骤。在众多的编程语言中,1、Python 以其清晰的语法和广泛的应用领域备受欢迎。Python 不仅是初学者友好的语言,而且在数据科学、网络…

    2024年4月26日
    1400
  • 网络编程选什么语言

    摘要 选择网络编程语言时,主要有三个准则:1、语言的网络库支持情况;2、性能因素;3、语言的生态与流行度。 网络库是编写网络应用的基础,一个语言强大、完善的网络库可以显著提高开发效率。例如,Python拥有强大的网络库如asyncio,该库提供了编写单线程并发代码的框架,它利用协程,通过事件循环高效…

    2024年4月27日
    1600
  • 有什么付费问答的平台吗

    较为知名的付费问答平台有:1、知乎Live;2、得到;3、喜马拉雅会员服务;4、新浪微博超话圈子;5、Fenda(分答)。知乎Live是知乎的一项付费服务,让用户可以付费参加由专业人士或者有影响力的用户(大V)主持的线上讲座。 1、知乎Live 知乎Live是知乎的一项付费服务,让用户可以付费参加由…

    2023年7月11日
    3.0K00
  • 制定工作计划用什么软件好

    制定工作计划用的软件有:一、PingCode;二、Worktile;三、Wrike;四、Smartsheet;五、Clarizen。PingCode 是国内2021年软件项目管理榜单排名名列前茅的项目管理软件(36氪发布),在软件项目管理方面它有着非常多其他软件都不具备的优势。 一、PingCode…

    2023年4月30日
    50900
  • 汽车编程用什么语音编程

    汽车编程使用哪种编程语言? 在汽车编程的领域,最常使用的编程语言包括C语言、C++、Python和Java。C语言由于其高效率和接近硬件的特性,在汽车系统编程中占据了头把交椅的位置,尤其在嵌入式系统和底层硬件控制方面。它的直接内存访问能力使得开发者能够精准地控制汽车中的微控制器和传感器等硬件设备。 …

    2024年4月26日
    1400
  • 为什么项目管理软件的数据分析功能很重要

    项目管理软件的数据分析功能对项目成功至关重要,原因包括:1、决策支持强化;2、效率优化;3、风险减少;4、沟通改善;5、绩效监控。 其中,决策支持强化 对任何项目至关重要。项目管理软件通过提供实时数据、趋势分析、预测和可视化工具,使项目经理能够获得关键信息以制定明智的决策。实时数据为即时调整提供了依…

    2023年12月21日
    27000
  • 如何做好工程项目统筹管理

    做好工程项目的统筹管理,关键在于高效整合资源、严格控制项目进度、确保质量与成本控制、强化沟通与协作以及高度重视风险管理。在这些因素中,高效整合资源尤其关键,因为它直接影响到项目的成本、质量、时间以及团队的士气。整合资源意味着合理配置人力、物力、财力和信息资源,确保项目在不同阶段都有恰到好处的支持,避…

    2024年4月10日
    10500
  • 分布式系统中的数据一致性和性能怎么权衡

    权衡两者要做到:一、优先保证数据一致性;二、优先保证性能;三、平衡数据一致性和性能。如果数据的一致性是业务的核心要求,那么就需要优先保证数据的一致性,即使用强一致性协议,牺牲一定的性能来保证数据的一致性。 一、优先保证数据一致性 如果数据的一致性是业务的核心要求,那么就需要优先保证数据的一致性,即使…

    2023年5月30日
    31300
  • 学软件编程辅修什么好

    软件编程专业学生辅修数学、计算机科学、人工智能、交互设计、项目管理、外语、心理学、企业管理、市场营销 或 法律 是很有帮助的。其中,辅修数学 可以帮助软件编程专业的学生在解决复杂问题时更加高效。数学不仅能够提供严谨的解决问题的方法,还能够帮助学生在进行算法设计和性能优化等方面有更深刻的洞见。此外,数…

    2024年4月27日
    1000
  • c语言用什么编程软件好

    C语言用什么编程软件好? 在选择C语言编程软件时,关键因素包括1、集成开发环境(IDE)的功能性、2、兼容性、以及3、用户界面友好度。集成开发环境(IDE)的功能性是尤其重要的考虑因素,因为它直接影响到编程的效率和便捷性。功能丰富的IDE能为程序员提供代码编辑、编译、调试等全面支持,极大地提高开发效…

    2024年4月26日
    1500

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部