`
Cindy_Lee
  • 浏览: 112240 次
  • 性别: Icon_minigender_1
  • 来自: 武汉人在北京
社区版块
存档分类
最新评论

答复: http协议简单总结 2

 
阅读更多
关于 “server容器”的说明:这是我的错,是我没有表述清楚,其实我想说的是server或容器 这里的server指的是其它非java程序编写的web服务程序,容器特指的是java编写的web容器(当然可能不是servlet,也可能是prolet等),
这其实就是我下面所说的http协议解释器。

关于应用层协议与socket的解释:协议在宏观上解释其实就是一种规则,应用层协议的话其实是你上图所示的数据应用体里的一种字节排列的格式,这些格式如果脱离解析器本身没有任何意义。

而socket其实就是传输层的一种抽象,它是为了更好的让应用层和传输层衔接而服务的,我们操作socket就等同于操作tcp/ip 或者udp/ip协议,是这两种协议的封装
而应用层的解释器其实就是基于socket接口的再次封装,根据应用层的协议不同解释器也不同。

而http协议是个典型的应用层协议,其解释器也是基于socket接口的再次封装,因此我得出了以下结论:
“socket是操作tcp/ip的接口(当然也有udp/ip),http协议是基于tcp/ip的,无疑http协议是基于socket的”
(如果你有疑问你可以去研究一下jetty(或tomcat)的源码,你看看jetty是不是建立了一个socket然后监听的,或者你能给出任何一个应用层解释器不是基于socket的?)


关于“text-based”的说明:字面上解释为:“基于文本”
而什么是文本?我的理解是:有一定规则(格式)的字节组合,在网络传输上我的理解是字符流,在介质存储上我的理解是文本文件。

我们还是反过头来分析,http协议,它有两部分组成,1.协议头 2.协议体 
协议头是基于文本的,或者说是字符。
协议体不一定,可以是字符也可以是字节,所以http协议并不是text-based
而抛开http解释器不谈的话,http协议的本质其实就是“仅仅只是tcp协议的基础上加了个text-based的报文头而已”


“http协议是纯粹的请求-响应模型”这句话说之所以不准确,是因为这是“标准”http解释器给予的含义,为什么我要强调“标准”呢?
因为的确是有不标准的http解释器存在。
然后再反过头来看我说的这句话:“大多数基于http协议的server容器是请求-响应模式的”,为什么我要强调“大多数”呢?这里的大多数其实指的就是那些标准的。

或许现在说“标准”已经没有太大的意义了,因为在信息网络的快速发展下,http协议已经早已不是以前那种单纯的 “请求-响应模型”了,或许用“旧”来形容更贴切一点。

comet和websocket就是这个时代的产物,随着网络环境的改善,与通讯硬件的提升这是必然的结果,同时也离不开http协议解释器的支持。

为什么我们以前强调“http协议是响应应答模式?”那是因为网络环境和通讯硬件的限制,我们为了最大限度的提高带宽和硬件的利用率而在http协议解释器上做出的限制,
这并不表示http协议没有这个能力,而且http协议是基于tcp/ip的,它具有tcp/ip协议的一切特性,理论上来讲,只要tcp/ip协议能够支持的http协议就一定可以支持。

好,我们再来讨论comet的问题,你说的不错,comet本质上其实就是客户端发起请求,服务器端没有断开连接(comet分长连接和短连接两种,在这我只讨论长连接的情况),因此双方可以相互通信,不过这已经不是所谓的请求应答模式了。
因为在双方建立连接之后,服务器端是可以像客户端推送消息的,而且是实时到达,这其实也是依赖于tcp/ip协议的特性(在三次握手之后,两端建立起了虚拟的相互通信的通道....),同时也离不开http协议解释器的支持。

至于websocket其实也是长连接,如果说本质的话就是终端和服务器通过tcp/ip的特性经过三次握手建立起了虚拟的通讯通道,并且运用http协议作为报文的载体(也就是每次发送信息多加了个http协议的报文头)
分享到:
评论

相关推荐

    答复: 通过代码简单介绍JDK 7的MethodHandle,并与.NET的委托对比(二)

    标题中的“答复: 通过代码简单介绍JDK 7的MethodHandle,并与.NET的委托对比(二)”表明本文将深入探讨Java中的MethodHandle概念,并将其与.NET平台上的委托进行对比。MethodHandle是JDK 7引入的一个强大特性,它...

    答复: 一道经典线程面试题的4种解法

    标题中的“答复: 一道经典线程面试题的4种解法”暗示了这是一个关于多线程编程的问题,通常在面试中出现,用于评估候选人的并发处理能力。在这个问题中,可能涉及到同步、线程安全、锁机制等关键概念。 在Java中,...

    网络协议工程总结.docx

    网络协议工程总结 在网络协议工程中,协议层次模型是描述实体之间的关系的重要概念。实体可以是硬件或软件进程,能够发送和接收信息。在协议层次模型中,每层之间的关系是通过效劳来实现的。效劳是指两个实体在协议...

    三年级英语暑假作业之句子改写练习.doc

    - 肯定答复与否认答复:对一般疑问句的回答,肯定答复用“Yes, + 主语 + 助动词/情态动词。”,否定答复用“No, + 主语 + 助动词/情态动词 + not。” 2. 具体题目解答: - 1. It is fun at school. 否认句:It is...

    答复: 喜欢和使用Portal的朋友请进!

    博文链接:https://eric2007.iteye.com/blog/158580

    答复:答复“通向开放未来的捷径”

    2. **CC-BY许可**:社论采用的CC-BY许可协议允许他人在保留原作者署名的前提下,自由地使用、复制、修改和分发内容。这体现了对知识共享和学术交流的鼓励。 3. **化学信息**:提及化学信息可能意味着社论特别关注...

    PPI协议分析 PPI协议分析

    PPI(Point-to-Point Interface)协议是一种专门为西门子中小型PLC(Programmable Logic Controller,可编程逻辑控制器)设计的通信协议,它允许PLC与PC或其他PLC之间进行简单的点对点通信。由于其简单易用的特点,...

    仰邦5(M)K字库控制器通讯协议V2.7

    2. **熟悉标准通讯格式**: 包括协议结构和格式。 3. **开发实时信息刷新功能**: 如果仅需要开发简单的实时信息显示功能,可以重点参考实时显示信息命令。 通过上述详细分析,我们可以看到仰邦5(M)K字库控制器通讯...

    Modbus通讯协议.pdf

    如果需要响应,控制器将生成相应的答复并通过Modbus协议发送回去。Modbus协议定义了ASCII、RTU(Remote Terminal Unit)和TCP三种通信模式: 1. **ASCII(American Standard Code for Information Interchange)**...

    英语句型转换常规基本句式的转换方法.doc

    总结来说,句型转换的关键在于理解和掌握基本句型(肯定、否定、疑问)之间的转换规则,以及在不同情境下如何运用情态动词、助动词和be动词。同时,同义句转换是提升英语能力的重要环节,它反映了语言的灵活性和丰富...

    modbus 协议 及 modbus RTU 的 C51 单片机 程序.pdf

    3. **命令和响应**:Modbus协议规定了命令(查询)和响应(答复)的方式。主设备(Master)向从设备(Slave)发送数据请求,从设备接收到正确的消息后,可以发送数据到主设备以响应请求;主设备也可以直接发送消息...

    评估合作协议范本精选.doc

    《评估合作协议范本》是规范两个或多个实体之间在房地产评估业务中合作的重要法律文档,其主要内容涵盖了合作的各个方面,包括但不限于以下几点: 1. **合作原则与责任分担**:协议强调甲乙双方应遵循平等友好、...

    股份认购协议书.docx

    股份认购协议书是一种重要的法律文件,用于规范公司股东与员工之间的股权激励机制。这份协议书涉及到的主要知识点包括: 1. **合同法与公司法依据**:协议书的制定基于《中华人民共和国合同法》、《中华人民共和国...

    合伙人协议范本2021-合伙购房协议书(标准通用版).docx

    ### 合伙购房协议关键知识点解析 #### 一、协议背景与目的 - **背景**:随着房价的不断上涨和个人资金有限的情况下,越来越多的人选择合伙购房来实现住房梦想。 - **目的**:通过签订正式的合伙购房协议,明确双方...

    SWP:简单有线协议

    西南太平洋简单有线协议(c)2011年-2016年罗伯特·奥利弗· Robert K. 该项目是简单有线协议的描述和参考实现。 主要目标是创建一种相对简单易懂的通用有线协议。简单线协议规范v0.2α修订记录v0.1α,2011-10-03,...

    西门子S7-communication协议说明文档

    ACK是由从属设备发送的简单确认,ACK数据是带有可选数据字段的确认,包含对作业请求的答复。Userdata是原始协议的扩展,参数字段包含请求/响应id(用于编程/调试、SZL读取、安全函数、时间设置、循环读取)。 五、...

    专利审查中如何答复0A

    总结来说,答复审查意见通知书是一项技术性很强的工作,需要专利代理人具备深厚的专利法知识,对相关技术领域的深入理解,以及良好的沟通和逻辑推理能力。通过仔细阅读、全面分析审查意见通知书,并撰写出有说服力的...

    专利申请代理服务协议书精选.doc

    2. 专利类型与数量:协议规定了甲方申请的专利类型,包括外观设计、实用新型和发明专利,以及申请的数量。这表明甲方可能有多种类型的创新需要保护。 3. 服务内容与流程:乙方负责撰写专利文件、拍摄外观设计照片、...

Global site tag (gtag.js) - Google Analytics