13 | HTTP有哪些特点?
13 | HTTP有哪些特点?
讲述:Chrono
时长09:05大小12.45M
灵活可扩展
可靠传输
应用层协议
请求 - 应答
无状态
其他特点
小结
课下作业
赞 31
提建议
精选留言(50)
- 壹笙☞漂泊2019-06-26课后题: 1、我觉得所谓的优点和缺点都是要区别场景来看待的,比如,在一些长连接场景中,需要保存上下文状态,那么无状态这一点就成为缺点甚至是致命缺点了。但是在客户端-服务端通信中,如果场景不需要保存上下文信息,那么无状态就可以减少一些网络资源消耗,也就是优点了。 2、可靠传输对我比较重要,减少很多查错的工作。。。 总结: http特点: 灵活可扩展 可以扩展头字段实现功能 可靠传输 HTTP并不能100%保证数据一定能够发送到另一端,在网络繁忙、连接差等恶劣环境时,也有可能收发失败,可靠只是向使用者提供了一个承诺,会在下层用多种手段尽量保证数据的完整送达 应用层协议 请求-应答通信模式 客户端主动请求,服务端被动响应 无状态协议 状态:客户端或者服务器里保存的一些数据或者标志,记录了通信过程中的一些变化信息 每个请求都是互相独立,毫无关联的,两端都不会记录请求相关的信息展开
作者回复: 一直这么认真学习,值得表扬!!
59 - 狼的诱惑2019-07-31老师好,有两点疑问 1、为什么说MQ的比HTTP是高可靠的 2、个人觉得http的无状态,完全符合可扩展,轻量级、易维护现代设计,属于优点,不算是缺点,为什么大家认为不支持有状态就算是缺点,如果http做成有状态,估计复杂度会非常高吧? 个人想法,还请老师指正展开
作者回复: 1.mq的设计目的就是消息传输,保证不丢失,为此用了很多的手段,比如消息队列、路由、存储等等。而http的目的不在于此,它的可靠性基于tcp,而tcp不能保证消息100%发送。 2.无状态有的时候是优点有的时候是缺点,看应用场景,在需要扩展的时候无状态就是优点,在需要会话保持的时候就是缺点。 3.但无状态可以很容易变成有状态,而反过来就很难,这就体现了http的灵活性。
39 - Celine2020-03-27Http的缺点,无状态,在需要身份信息验证的时候就显示为缺点,用户登陆后每次请求都需要阐释一下身份,不能保存登陆成功的状态,不过现在可以在头字段里加入cookie或者token来解决这个问题;请求应答模式,导致服务器端只能被动的接收而不能主动推送,如果服务器资源状态变化的时候想要主动推送到客户端就需要借助其他协议来完成,比如we socket
作者回复: 说的很好,最后应该是笔误,WebSocket。
19 - 瑞2019-06-29http无状态不是特别理解,状态的意思就是一个事物因为外界因素导致这个事物的形态,使用等发生改变,这个就是有状态的吧,http作为一个协议,本质不承载任何东西,只是一个数据的传输通道,即使传输通道里的数据有状态改变,也不能称为是http状态改变,因为理解为无状态,可以这样理解吗?
作者回复: http协议里的“状态”是指没有规定通信双方需要记录通信过程的上下文信息,与日常生活的“状态”意思是不一样的。 每次http请求都是独立,无关的,不需要保留状态信息。
共 2 条评论18 - 钱2020-03-281:就如同开头我讲的那样,你能说一下今天列出的这些 HTTP 的特点中哪些是优点,哪些是缺点吗? 灵活可扩展是优点,没有这一点,她不可能一统江湖,这也是她敢说“在坐的各位都是垃圾”的底气。 灵活可扩展是缺点,她引入了一定的复杂度,增加了一定的学习成本。 可靠传输协议是优点,保证了数据的可靠性。 可靠传输协议是缺点,必须先建连才行,效率估计不如UDP。 应用层协议是优点,靠近用户,对用户优化,方便使用。 应用层协议是缺点,越往上处理的事情会越多,通信效率会差一些。 请求应答模式是优点,符合人类的对话方式容易理解,一个请求得到响应在发生另外一个。 请求应答模式是缺点,我请求一个资源,发现不够再请求一次,你一次回给我俩,不用回两次这么简单的事就做不到。 无状态是优点,无状态意味着易扩展,也不需要保持状态信息,节省空间。 无状态是缺点,我想保持回话状态还必须自己去想办法。 好吧!😅我编不下去了,不过我觉得HTTP最大的优点就是灵活可扩展,我们自己设计程序也希望做到这样,不过真要如此,复杂度会马上上去,不过HTTP确做到了灵活可扩展但是复杂度却没有增加太多。这一点太厉害了。 2:不同的应用场合有不同的侧重方面,你觉得哪个特点对你来说是最重要的呢? 看应用场景吧!目前,可靠传输对我而言至关重要,效率可以放一放,安全稳定第一。展开
作者回复: 1.说的很好,没有绝对的优点,也没有绝对的缺点。 2.http的可靠传输不能算是顶级的,但搭配上灵活就无敌了。
16 - 尔冬橙2019-12-14HTTP的长连接和无状态不矛盾么
作者回复: 不矛盾,长连接只是在连接层面节约了成本,每次的请求还是没有携带任何客户端的信息,服务器仍然不记录状态,每次请求都是独立的。
共 3 条评论12 - 渴望做梦2019-08-21老师,这个顺序发包和顺序收包不是很理解,是是指第一个发送的请求一定会排在第一位处理吗?
作者回复: 是的,http这种请求-应答模式就是这样,必须第一个有回应后才能处理下一个。
共 2 条评论10 - 火车日记2019-06-26一个能打的都没有!! 缺点:明文传输9
- 哈德韦2020-10-07尽量送达不是UDP的特征吗?只送出去不确认的,而TCP是保证送达,收不到确认会重试的,如果实在不行就会报错。HTTP基于它,应该也是保证送达吧?
作者回复: 可能是我说的不是太准确,引起误会了。tcp是保证送达的,用“尽量”也许和udp有点混淆了,抱歉。
5 - 有米2020-05-13即使是当红MQ也没人敢打包票100%不丢
作者回复: 对,但可靠性99.9%和99.999%还是有差距的,所以需要根据具体场合选用恰当的产品。
5 - 彩色的沙漠2019-06-26请求应答模式也就注定了HTTP不适合用于IM场景?
作者回复: 是的,所以就出现了WebSocket。
共 4 条评论5 - 潇潇雨歇2020-06-131、无状态是把双刃剑,设计成无状态能够减少资源的使用。但是如果需要保存用户身份,那么无状态就是缺点了。 2、可靠传输和请求应答吧,能确定成功发起请求和收到响应很重要。这也是平常开发的基础
作者回复: 学习得很努力啊。
共 2 条评论3 - ddq4322019-12-05我有个问题,http 用 tcp 来尽量保持可靠请求,客户端发送一次请求服务,服务端会发送一个tcp的ack,告诉客户端我收到消息了,假如说这次发送的tcp下的ack信息,客户端没收到,会怎么办
作者回复: 这个属于tcp协议要解决的问题,如果没有收到ack,客户端就认为是丢包,启用重发机制,再发一次。
共 3 条评论3 - 一粟2019-06-26终于明白为何是HTTP一统天下了,扬长避短灵活使用才是王道。
作者回复: √
共 2 条评论3 - Tintin2020-06-021. 优点:可扩展(更能适应不确定的环境)、可靠(在可靠比时效性重要的场景下);缺点:可靠(在时效性比可靠更重要的场景下)、请求应答模式(服务器无法主动推送数据给浏览器)、无状态
作者回复: 说的很好。
共 2 条评论2 - Cris2019-08-16HTTP 完全可以用开玩笑的口吻说:“不要误会,我不是针对 FTP,我是说在座的应用层各位,都是垃圾。” websocket表示不服
作者回复: WebSocket属于后来的“小字辈”了,而且应用范围比http还是要差很多,不过应该不算是“垃圾”了,笑。
2 - 响雨2019-07-04优点:灵活拓展性强 缺点:明文传输 因时而异:无状态
作者回复: 对
2 - 凉人。2020-03-17cookie应该算是一种上下文么? 这里有点想不通
作者回复: cookie只是用来携带kv数据,本身不具有特定含义,可以做任何事情,所以很适合用来标记用户身份,但这只是它的用途之一。
共 2 条评论1 - 李鑫磊2019-11-28老师,特别困惑的是:HTTP、WebService、RPC、RESTful、gRPC、WebSocket 这几个概念之间的联系和区别,纠结...
作者回复: 在开头几讲简单介绍了这些概念,要搞清楚的是协议、调用接口、设计风格/规范这些更大范围的概念。
1 - 六维2019-06-261、灵活可扩展是优点,促进其发展。 2和3也是优点。 4、是优点也是缺点,缺点是应答方不能做到主动反馈。 5、即是优点也是缺点,主要是看适用的场景,无状态,请求时需要携带更多的数据。
作者回复: 说的很好。
1