• 壹笙☞漂泊
    2019-06-26
    课后题:
    1、我觉得所谓的优点和缺点都是要区别场景来看待的,比如,在一些长连接场景中,需要保存上下文状态,那么无状态这一点就成为缺点甚至是致命缺点了。但是在客户端-服务端通信中,如果场景不需要保存上下文信息,那么无状态就可以减少一些网络资源消耗,也就是优点了。
    2、可靠传输对我比较重要,减少很多查错的工作。。。
    总结:
    http特点:
    灵活可扩展
        可以扩展头字段实现功能
    可靠传输
        HTTP并不能100%保证数据一定能够发送到另一端,在网络繁忙、连接差等恶劣环境时,也有可能收发失败,可靠只是向使用者提供了一个承诺,会在下层用多种手段尽量保证数据的完整送达
    应用层协议

    请求-应答通信模式
        客户端主动请求,服务端被动响应
    无状态协议
        状态:客户端或者服务器里保存的一些数据或者标志,记录了通信过程中的一些变化信息
        每个请求都是互相独立,毫无关联的,两端都不会记录请求相关的信息
    展开

    作者回复: 一直这么认真学习,值得表扬!!

    
     10
  • 火车日记
    2019-06-26
    一个能打的都没有!!
    缺点:明文传输
    
     5
  • 狼的诱惑
    2019-07-31
    老师好,有两点疑问
    1、为什么说MQ的比HTTP是高可靠的
    2、个人觉得http的无状态,完全符合可扩展,轻量级、易维护现代设计,属于优点,不算是缺点,为什么大家认为不支持有状态就算是缺点,如果http做成有状态,估计复杂度会非常高吧?
    个人想法,还请老师指正

    作者回复:
    1.mq的设计目的就是消息传输,保证不丢失,为此用了很多的手段,比如消息队列、路由、存储等等。而http的目的不在于此,它的可靠性基于tcp,而tcp不能保证消息100%发送。

    2.无状态有的时候是优点有的时候是缺点,看应用场景,在需要扩展的时候无状态就是优点,在需要会话保持的时候就是缺点。

    3.但无状态可以很容易变成有状态,而反过来就很难,这就体现了http的灵活性。

    
     4
  • 瑞
    2019-06-29
    http无状态不是特别理解,状态的意思就是一个事物因为外界因素导致这个事物的形态,使用等发生改变,这个就是有状态的吧,http作为一个协议,本质不承载任何东西,只是一个数据的传输通道,即使传输通道里的数据有状态改变,也不能称为是http状态改变,因为理解为无状态,可以这样理解吗?

    作者回复: http协议里的“状态”是指没有规定通信双方需要记录通信过程的上下文信息,与日常生活的“状态”意思是不一样的。

    每次http请求都是独立,无关的,不需要保留状态信息。

    
     3
  • 渴望做梦
    2019-08-21
    老师,这个顺序发包和顺序收包不是很理解,是是指第一个发送的请求一定会排在第一位处理吗?

    作者回复: 是的,http这种请求-应答模式就是这样,必须第一个有回应后才能处理下一个。

    
     2
  • Cris
    2019-08-16
    HTTP 完全可以用开玩笑的口吻说:“不要误会,我不是针对 FTP,我是说在座的应用层各位,都是垃圾。” websocket表示不服

    作者回复: WebSocket属于后来的“小字辈”了,而且应用范围比http还是要差很多,不过应该不算是“垃圾”了,笑。

    
     1
  • 彩色的沙漠
    2019-06-26
    请求应答模式也就注定了HTTP不适合用于IM场景?

    作者回复: 是的,所以就出现了WebSocket。

    
     1
  • 一粟
    2019-06-26
    终于明白为何是HTTP一统天下了,扬长避短灵活使用才是王道。

    作者回复: √

     1
     1
  • 疯狂咸鱼
    2019-12-14
    HTTP的长连接和无状态不矛盾么

    作者回复: 不矛盾,长连接只是在连接层面节约了成本,每次的请求还是没有携带任何客户端的信息,服务器仍然不记录状态,每次请求都是独立的。

    
    
  • ddq432
    2019-12-05
    我有个问题,http 用 tcp 来尽量保持可靠请求,客户端发送一次请求服务,服务端会发送一个tcp的ack,告诉客户端我收到消息了,假如说这次发送的tcp下的ack信息,客户端没收到,会怎么办

    作者回复: 这个属于tcp协议要解决的问题,如果没有收到ack,客户端就认为是丢包,启用重发机制,再发一次。

    
    
  • 夏目
    2019-12-01
    优点:灵活可扩展,其他几个都要看实际场景吧。

    作者回复: 这个是最重要的优点。

    
    
  • 李鑫磊
    2019-11-28
    老师,特别困惑的是:HTTP、WebService、RPC、RESTful、gRPC、WebSocket 这几个概念之间的联系和区别,纠结...

    作者回复: 在开头几讲简单介绍了这些概念,要搞清楚的是协议、调用接口、设计风格/规范这些更大范围的概念。

    
    
  • Geek_steven_wang
    2019-08-14
    HTTP 是灵活可扩展的,可以任意添加头字段实现任意功能;可扩展是优点,但不严谨也是缺点,就看我们更看中那方面。

    HTTP 是可靠传输协议,基于 TCP/IP 协议“尽量”保证数据的送达;算是优点。

    HTTP 使用了请求 - 应答模式,客户端主动发起请求,服务器被动回复请求;中性,性能稍微弱小和长链接比。
    HTTP 本质上是无状态的,每个请求都是互相独立、毫无关联的,协议不要求客户端或服务器记录请求相关的信息。扩展方面是优势,但上下文关联需要额额外处理,是弱势。
    展开

    作者回复: 总结的不错。

    
    
  • ly
    2019-08-11
    一些个人的见解:
    正如文章所说,由于http只规定了报文的基本格式,并没有严格的语法规则,例如header我们可以随便自定义、body可以随便传输什么数据,以后只要时代需要,就会存在无穷的可能(只要以后这些web服务器和客户端进行事先的约定就能实现)。
    http的可靠性完全由下层的TCP协议承担,http无力承担可靠性。
    http对数据的封装,其实就是在数据body的上面加了一个请求行和若干个header(CRLF分隔)。
    http的万能,http可以传输任意的内容,比如文件内容(将FTP秒杀);发送邮件(SMTP秒杀),其根本原因还是HTTP没有严格的要求必须传输什么样的数据,基本上没有限制其应用场景。
    展开

    作者回复: 说的非常好,赞!

    
    
  • 四月的紫色花
    2019-08-08
    1.就如同开头我讲的那样,你能说一下今天列出的这些 HTTP 的特点中哪些是优点,哪些是缺点吗?
    优缺点是需要看在什么场景下的,整体来说,最大优点应该是它的灵活性可扩展,缺点是它传输的是明文,这个还是他大兄弟https出马来改进的,无状态这种东西应该分场景,大部分情况我觉得是缺点,比如我上网查一个资料的时候,可能需要不停的找,点击各种网页,无状态的话每次都记不住服务器的状态,需要重新连接,会使我的查询时间变长(虽然有时候我们并无感觉,这也可能是由于keepalive这个字段)
    2.不同的应用场合有不同的侧重方面,你觉得哪个特点对你来说是最重要的呢?
    灵活性对开发者来说应该挺重要;我作为一个使用者,可靠性相对重要一点,我不做web测试,具体的应用场合有哪些其实还不能准确的描述出来,在我眼里都是查询就完了😅😂😂
    http特点,灵活可扩展,可靠尽量达,应用无限制,一收一发走天下,状态虽然记不住,但是咱有keepalive😀
    展开

    作者回复: 说的很好。

    
    
  • 无野
    2019-07-07
    老师,关于小贴士里“出于安全原因,绝大多数网站都封禁了80/8080以外的端口号,只允许http协议穿透,这也是造成http流行的客观原因”,想问个比较stupid的问题:是因为80/8080被放行,http才流行;还是因为http流行,80/8080才被放行?

    作者回复: 这两个应该是互相作用的,就像“鸡生蛋蛋生鸡”一样,没有一个绝对的起点。

    
    
  • 响雨
    2019-07-04
    优点:灵活拓展性强
    缺点:明文传输
    因时而异:无状态

    作者回复: 对

    
    
  • 彧豪
    2019-06-27
    都是垃圾,断水流大师兄的即视感,哈哈哈

    作者回复: 笑。

    
    
  • 业余草
    2019-06-27
    未完待续,迫不及待的想看后面的文章

    作者回复: 循序渐进,学业可成。

    
    
  • -W.LI-
    2019-06-27
    灵活可扩张是最大优点吧。
    可靠性比不上MQ,
    传输数据虽然通用,可是文件传输时效率肯定比不是FTP,
    无状态,在需要状态的地方通过扩展弥补不足。
    请求应答,有些需要服务器主动推得需要用websocket协议。

    展开

    作者回复: 说的对。

    
    
我们在线,来聊聊吧