• 壹笙☞漂泊
    2019-05-31
    问题一:
    我觉得这种说法是错误的。
        理由:HTTP是在计算机世界里,用于两点之间之间传输超文本的协议。这两点并不限定于是服务器还是浏览器。可以是从浏览器到服务器,也可以从服务器到服务器,也可以是浏览器到浏览器。并不能描述成从服务器到浏览器。
    问题二:
    HTTP不是软件、不是网址(暂时想到的比较少)
    总结:
    协议:HTTP是一个用在计算机世界里的协议。它使用计算机能够理解的语言确立了一种计算机之间交流通信的规范,以及相关的各种控制和错误处理方式
     传输:HTTP是一个在计算机世界里专门用来在两点之间传输数据的约定和规范
            1、HTTP协议是一个“双向协议”
            2、不限定两个角色,允许有中转或接力A<=>X<=>Y<=>Z<=>B
    文本:完整的有意义的数据,可以被上层应用程序处理
            包括但不限于 文字、图片、音频、压缩包
    超文本:超越了普通文本的文本。是文字、图片、音频和视频等的混合体。最关键的是含有超链接。能从一个超文本跳跃到另一个超文本。形成复杂的非线性、网状的结构关系。

    HTTP是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。

    HTTP不是互联网、不是编程语言、不是HTML,不是一个孤立的协议
        HTTP通常跑在TCP/IP协议栈之上,依靠IP实现寻址和路由、TCP协议实现可靠数据传输、DNS协议实现域名查找、SSL/TLS协议实现安全通信。此外,还有一些协议依赖于HTTP,例如WebSocket、HTTPDNS等。这些协议相互交织,构成了一个协议网,而HTTP则处于中心地位。

    展开

    作者回复: 总结的很好,也很早啊。
    指出一点误解:两个浏览器不能通信。服务器可以当客户端,但浏览器只是客户端。

     5
     27
  • 团结屯儿王二狗他二大...
    2019-06-04
    所谓的专家是用大家能听懂的语言,把复杂的知识讲明白。看的出来峰哥简单的背后是巨大的知识储备,感觉很用心,不错。期待后面文章能够让大家循序渐进、由浅入深,已关注,哈哈哈

    作者回复: 是啊,讲清楚讲明白太不容易了。

    
     17
  • A-Lang
    2019-05-31
    这个课程感觉很适合基础的同学学习!不知道后面老师会不会逐渐深入讲解一些深层次的东西

    作者回复: 讲深了当然可以,但如果上来就是RFC估计会“吓跑”很多人,所以还是循序渐进比较好。
    后面的进阶、安全、飞翔都有比较深的干货,有具体的需求也可以提,如果感兴趣的人多就多加点料。

    
     14
  • 小米
    2019-05-31
    这是我看过的讲HTTP最通俗易懂的文章,忍不住要点赞!

    作者回复: 非常感谢。

    
     13
  • 恩佐
    2019-06-18
    老师你的知识导图里有错误
    错误在HHTTP/2里的gRPC
    您写的是gRFC

    作者回复: 感谢指正,人老了,手抖了,笑。

    
     5
  • XThundering
    2019-05-31
    有个小问题,为什么文章说HTTP通常跑在 TCP/IP协议栈之上,请问还有其它协议栈吗?

    作者回复: 有的,比如在UNIX上可以用Domain Socket,还有SSL/TLS。

     1
     5
  • 业余草
    2019-05-31
    作者写的很用心!点赞👍
    HTTP 协议是双向的。服务器 -> 客户端,客户端 -> 服务器。
    期待后面的内容

    作者回复: thanks.

    
     5
  • xing.org1^
    2019-06-07
    老师您好,请问小结第二条,说http是在两点之间进行传输数据。我的疑惑是:http不是协议吗?我就按照老师的比喻把他理解为“协议”、“合同”了,如果就是纸上的约定,只是一个规范的话,http怎么做传输数据的事情呢?另外http又是怎么做到的呢?

    我的网络知识真的是小白,问的很幼稚还请见谅:)

    作者回复: 你理解的很对,既然是约定,只要大家都遵守,那么协议就生效了。

    就像红绿灯,它只是有颜色转换,怎么就能管理交通呢,你可以对比理解一下。

    计算机依据http的规范去做,发请求收响应,就实现了传输数据。如果不按照http规范,就不能完成通信。

     1
     4
  • 不靠谱~
    2019-05-31
    1 错误的说法,Http可以在任意两点间进行传输。只是从服务器传输到浏览器这种形式比较常见。
    2 http不是一种服务,不是一种语言,不是一种网络。只是一种协议,一种约定。

    感谢老师分享

    作者回复: 对。

    
     3
  • 徐云天
    2019-05-31
    总而言之,http是一个通信协议,它有它的规范。不会限制在某个平台。任何计算机,都可以使用它。计算机程序之间的通信可以使用它。

    作者回复: good。

    
     3
  • tech2ipo
    2019-05-31
    老师你好,我想用Linux C++写一个HTTP Client,但有个问题:当我用socket套接字接收HTTP 响应报文时,会调用recv(int sockfd, void *buf, size_t len, int flags);,这里的len填多少合适呢?开源代码里有填1个字节的,也有填4096个字节的,你怎么看这个问题?

    作者回复: len参数是buf的长度,你开了多少就填多少,实际接收到的数据长度在函数返回值里。
    调用示例可以参考Nginx源码的ngx_recv.c。

    
     3
  • 小美
    2019-06-04
    1. 「用于从互联网服务器传输超文本到本地浏览器」的说法太过片面,HTTP 是在两点之间,即服务端与客户端,而客户端不仅包括本地浏览器,服务器也可以作为客户端,其他的 App、小程序等应用程序也属于客户端。
    2. HTTP 不是软件:HTTP 是没有实体的协议,而软件是一种具体实现。

    作者回复: √

    
     2
  • 余熙
    2019-06-02
    讲的很有趣!
    一、课后题
    问题一: 我觉得这种说法,协议和超文本的描述是对的。从服务器传输超文本到浏览器是不对的。超文本除了从服务器传输到浏览器、还可以浏览器到服务器(比如上传图片、视频,输入用户信息等)、还可以从服务器到服务器传输。
    问题二:HTTP 不是算法、不是数据结构、不是数据库、不是机房

    二、我的疑问
    问题1 A<===>B 这个表示看起来浏览器既可以是请求方,也可以是响应方。如果浏览器可以作为响应方,什么时候会出现,会有错误标识返回服务器吗
    问题2 websocket 的设计是依赖于 HTTP 的,它是 tcp 上包了壳,那为何要依赖于 HTTP (希望后面有机会得到解答哈)
    展开

    作者回复: 1,浏览器只能是请求方,发送请求接收响应。
    2,websocket是为了解决动态html的问题而出现的,应用场景是web,所以用到了http。

    
     2
  • 鲁鹏
    2019-05-31
    罗老师,您好,有个疑问,HTTP 是在两点之间传输数据,这个「两点」是理解为两个终端设备之间吗?但是,我们学习网络协议,知道数据是一层一层传输,从 A 终端的网络层->....->物理层,然后到 B 终端的物理层->...-> 网络层。而 HTTP 协议在这个过程仅仅能接触到的只是「客户端」以及「传输层协议」呀。所以,这个两点是否能够理解为只是「客户端」和「传输层协议」之间的数据传输?

    作者回复: 网络分很多层次,但在http来看它并不关心,下层是怎么样它都无所谓,在http这一层来看就是两个端点:客户端和服务器,中间经过了多少路由网关是不考虑的。

    这个就是抽象的力量,当然理论上是这么说,实际上当然是层次收发的。

    后面还会讲http与协议栈,到时候可以再问。

    
     2
  • patsun
    2019-05-31

    HTTP可应用的个体是两个或者两个以上,对象可以是服务器与服务器、服务器与本地浏览器,本地浏览器与本地浏览器。

    http不是网址

    作者回复: 最后一个不对,两个浏览器不能通信。服务器可以当客户端,但浏览器只是客户端。

    
     2
  • 追风者
    2019-08-22
    透彻
    
     1
  • xing.org1^
    2019-06-07
    哇,好喜欢这个专栏。收获满满。谢谢老师

    作者回复: thanks。

    
     1
  • qzmone
    2019-06-05
    1,不准确,http传输的实际上是多媒体资源,HTML只是多媒体资源的一种标识语言。
    2. http是传输协议,不是寻址、隧道、广播等协议。也不是应用程序,编程语音,操作系统等

    作者回复: 第一点,注意还有传输方向、端点用户。

    
     1
  • Amark
    2019-05-31
    老师,WebSocket协议跟http协议有啥关系?

    作者回复: 到探索篇会讲,简单地说它就是tcp套了个壳,但用http建立连接。

    
     1
  • 一粟
    2019-05-31
    超媒体传输协议更形象,但“超”字含义不明,不好理解,改成“富媒体”或“多媒体”可否?

    作者回复: 历史原因,改不了,但自己这么理解是没问题的。

    
     1
我们在线,来聊聊吧