网站首页 > 资源文章 正文
前段时间,在和许久未见的老同学聊天时,突然被问到 http 协议到底是什么?脑海里面第一时间想起来的就是 request 请求、response 响应之类的词汇,但是这样讲他真的能知道是什么吗?我反问自己,于是找了相关的资料攻读一番。其实,大多数程序员经常都是在每天努力的搬砖,我相信,很少有人认真的研究过 http 协议到底是什么?
用官方的话来形容 http 协议又被称之为 超文本传输协议,是一种用于分布式、协作式和超媒体信息系统的应用层协议,它是网络互联的基础。我们通常知道 http 协议,说白了只是知道其如何使用在编程中,但其实 http 协议的底层实现极其复杂,它是通过网络七层架构或者说是网络五层架构通过一层一层的延伸到最上层的应用层协议。网络架构不是我们所研究的重点,但是起码得知道 tcp 协议的基本原理,为什么这里又提到了 tcp 协议,因为 tcp 协议也是属于应用层的一种协议,并且 http 协议就是对 tcp 协议的一种封装。
接下来,我们看看 http 协议是怎么工作的。一个 http 请求在发送到服务端之后,首先会建立一个 tcp 的套接字连接,紧接着服务端会收到来自客户端的请求报文、服务端对报文完成解析、就是知道这个请求想干什么,然后服务端将其客户端请求所需要的的内容信息返回给客户端、同时也会返回 tcp 的连接状态等信息,客户端拿到信息之后进行解析,在此之前响应也已经完成、相应的连接也会得到释放。注意:如果是对域名进行请求,在 tcp 套接字建立之前还会先进行域名服务器的访问完成域名解析。
下面用几个有趣的图来说明一下( 图片引用自:博客园 | 作者:爱文飞翔 ),通过图片说明 http 协议的请求过程。
上面两个有趣的图反映了 http 协议大致的请求过程。
另外,http 协议是一种无状态的协议。也就是说,http 协议自身不对请求和响应之间的通信状态进行保存、不做持久化的处理,在完成了一次请求、响应操作之后会断开连接。
在日常的编码中,http 请求主要定义了八种执行请求的方法。也就是朋友在问起时我脑海里面想到的关于 http 请求的 POST、GET、PUT、DELETE 等,这些内容只是 http 请求过程可以用于操作服务器资源的方法而不是 http 请求的概念或者原理性的东西。
作者:老王说编程
链接:https://juejin.cn/post/6935241257224503304
来源:掘金
猜你喜欢
- 2024-10-07 细说HTTP协议及其工作流程(mqtt协议和http协议区别)
- 2024-10-07 计算机网络|HTTP协议(计算机网络|http协议有哪些)
- 2024-10-07 关于 HTTP 协议,你了解多少(http协议网址含义)
- 2024-10-07 还不懂 HTTP 协议的吗?一篇文章讲透
- 2024-10-07 HTTP协议和HTTPS协议的区别详解(http协议和https协议的区别详解过程)
- 2024-10-07 蓝易云 - 网络通信协议-HTTP协议详解!
- 2024-10-07 HTTP协议入门的核心知识点总结,全在这里了,图文并茂拿走不谢
- 2024-10-07 介绍一下 HTTP 协议(http协议系列介绍)
- 2024-10-07 浅谈HTTP协议(http协议是目前在www中应用最广的协议)
- 2024-10-07 详解:什么是HTTP/3 和 QUIC 协议(modbus通讯协议功能码详解)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)