前段时间,在和许久未见的老同学聊天时,突然被问到 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 请求的概念或者原理性的东西。
更多精彩前往老王说编程>>>
相关推荐
7. **数据生命周期管理**:监控数据从创建到废弃的全过程,控制在线数据规模,提高访问效率,避免资源浪费。 8. **数据质量**:通过设定和执行数据质量规则,提高数据的准确性、完整性、一致性,降低错误率。 9. *...
### USB接口的HID(人机接口设备)类协议详解 #### 一、引言 在现代计算机系统中,USB(通用串行总线)已成为连接各种外部设备的标准接口之一。其中,HID(Human Interface Device,人机接口设备)是一种特殊的USB...
我们会将 HTTP 中一些互相关联且常被误解的规则梳理清楚,并编写了一系列基于各种主题的章节介绍 HTTP 各方面的特性。纵观全书,我们对 HTTP“为什么”这样做进行了详细的解释,而不仅仅停留在它是“怎么做”的。...
该文档将SPI I2C UART三种协议讲得非常清楚,需要的不要错过哦
《多媒体通信网络》一书的特点是:问题引导技术,讲清楚来龙去脉,围绕通信网络协议及其技术如何有效支持连续多媒体的传送构建全书的内容,注重概念和原理的阐述,同时力求反映多媒体通信网络技术的新发展。...
阅读英文的书籍就是如此,不是想象中的那么困难:)宁可在沙场上战死,也不能被吓死不是吗:) 信息筛选,搜索出来的结果不见得能够完全匹配,建议大家多阅读前几页的搜索结果,多打开几个网页看看,不过,我的...
usb通信协议,非常好的资源,讲得很全面很清楚,希望大家一起共勉。
整理是ADHOC网络路由协议的一个ppt但是是pdf格式的 讲的比较清楚 希望对大家有帮助
为了避免这种情况,浏览器会检查证书的完整性和有效性,包括验证证书链直至到一个预置的信任根证书,以及通过CRL或OCSP来确认证书是否已经被撤销。如果证书是有效的,浏览器和服务器之间就可以建立安全的连接,使用...
在描述项目时,不仅要讲清楚技术实现,还要体现项目的价值和对业务的贡献。 再者,面试中常常会考察求职者的思维逻辑和问题解决能力。遇到未知的问题,不要急于给出未经思考的答案,而是应该先理解问题,再进行分析...
闪电负载项目小程序性能优化之页面预加载框架介绍之前看到一篇文章,《微信小程序之提高应用速度小技巧》,是讲如何实现小程序在触发页面跳转前就请求协议,利用跳转页面的短短200~300ms的时间,获取到数据并渲染到...
Java Bean实际上相当于微软COM模型中的本地进程内COM组件,它是不能被跨进程访问的。Enterprise Java Bean 相当于DCOM,即分布式组件。它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨...
经过了白话PID博文的强烈反应之后,应多数控友要求,我将推出白话工控系列的文章。既然是白话系列大家就应该明白这个系列是用来把技术上一些枯燥...今天我将用大家都能理解的比喻形式把以太网的协议层的概念讲解清楚。
最后,这个超清版的教程将确保你能够清楚地看到每一个细节,从而更好地掌握SSH在Java环境中的应用。无论你是初学者还是有经验的开发者,这个教程都将提供有价值的见解和实践指导,助你在构建安全的权限系统上取得...
此外,还包括在特殊时期如春节前进行的大扫除服务,使得服务内容具体化、可操作性强,既明确了服务人员的工作职责,也让雇主清楚了解服务范围,便于监督和评价。 服务的地点和时间安排也是合同的重要组成部分。对于...
41-中间系统到中间系统的邻居关系建立和LSP同步 43-中间系统到中间系统的路由泄露基础和TAG 45-中间系统到中间系统的过载位实验 49-BGP基础概念 50-BGP的EBGP邻居 51-BGP的IBGP邻居和路由 52-BGP的报文类型 ...
网络在讲SDH传输体制之前,我们首先要搞清楚SDH到底是什么。那么SDH是什么呢?SDH全称叫做同步数字传输体制,由此可见SDH是一种传输的体制(协议),就象PDH——准同步数字传输体制一样,SDH这种传输体制规范了数字...
总是听到前端开发人员和服务器开发人员在讨论接口的问题,而你却一脸懵逼,不知所云,有时候我们会调用第三方平台的服务,但你不知道如何根据对方的接口写文档,因为你根本不知道接口是何物! 这篇文章写得很通俗...
可用数据文件(能被Excel 97打开);Oracle 8.1.x表格空间文件 DBX:DataBearn图像;Microsoft Visual FoxPro表格文件 DCT:Microsoft Visual FoxPro数据库容器 DCU:Delphi编译单元文件 DCX:Microsoft Visual...