02 | HTTP是什么?HTTP又不是什么?
02 | HTTP是什么?HTTP又不是什么?
讲述:Chrono
时长11:17大小12.90M
HTTP 是什么
HTTP 不是什么
小结
课下作业
赞 104
提建议
精选留言(119)
- 壹笙☞漂泊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则处于中心地位。展开
作者回复: 总结的很好,也很早啊。 指出一点误解:两个浏览器不能通信。服务器可以当客户端,但浏览器只是客户端。
共 9 条评论114 - 团结屯儿王二狗2019-06-04所谓的专家是用大家能听懂的语言,把复杂的知识讲明白。看的出来峰哥简单的背后是巨大的知识储备,感觉很用心,不错。期待后面文章能够让大家循序渐进、由浅入深,已关注,哈哈哈
作者回复: 是啊,讲清楚讲明白太不容易了。
60 - 小米2019-05-31这是我看过的讲HTTP最通俗易懂的文章,忍不住要点赞!
作者回复: 非常感谢。
41 - A-Lang2019-05-31这个课程感觉很适合基础的同学学习!不知道后面老师会不会逐渐深入讲解一些深层次的东西
作者回复: 讲深了当然可以,但如果上来就是RFC估计会“吓跑”很多人,所以还是循序渐进比较好。 后面的进阶、安全、飞翔都有比较深的干货,有具体的需求也可以提,如果感兴趣的人多就多加点料。
27 - xing.org1^2019-06-07老师您好,请问小结第二条,说http是在两点之间进行传输数据。我的疑惑是:http不是协议吗?我就按照老师的比喻把他理解为“协议”、“合同”了,如果就是纸上的约定,只是一个规范的话,http怎么做传输数据的事情呢?另外http又是怎么做到的呢? 我的网络知识真的是小白,问的很幼稚还请见谅:)
作者回复: 你理解的很对,既然是约定,只要大家都遵守,那么协议就生效了。 就像红绿灯,它只是有颜色转换,怎么就能管理交通呢,你可以对比理解一下。 计算机依据http的规范去做,发请求收响应,就实现了传输数据。如果不按照http规范,就不能完成通信。
共 6 条评论21 - 恩佐2019-06-18老师你的知识导图里有错误 错误在HHTTP/2里的gRPC 您写的是gRFC
作者回复: 感谢指正,人老了,手抖了,笑。
共 2 条评论19 - XThundering2019-05-31有个小问题,为什么文章说HTTP通常跑在 TCP/IP协议栈之上,请问还有其它协议栈吗?
作者回复: 有的,比如在UNIX上可以用Domain Socket,还有SSL/TLS。
共 2 条评论10 - 欢乐的小马驹2020-02-18我定了快二十个专栏。这是唯一一个对所有人回复的专栏 👍
作者回复: 呵呵,感谢夸奖。
8 - 不靠谱~2019-05-311 错误的说法,Http可以在任意两点间进行传输。只是从服务器传输到浏览器这种形式比较常见。 2 http不是一种服务,不是一种语言,不是一种网络。只是一种协议,一种约定。 感谢老师分享
作者回复: 对。
7 - tokamak2019-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。
7 - 业余草2019-05-31作者写的很用心!点赞👍 HTTP 协议是双向的。服务器 -> 客户端,客户端 -> 服务器。 期待后面的内容
作者回复: thanks.
6 - 毕竟养猪能致富2019-06-01罗老师,我今年7月毕业,我也是软件工程专业的。感觉看了你的课程真的懂了很多,讲得非常详细,越看越想看,本来都准备睡觉了,结果没睡着,起来又看了遍。😂希望在后面的课程能学到更多知识。嘻嘻
作者回复: 坚持就会有收获,keep going。
4 - 徐云天2019-05-31总而言之,http是一个通信协议,它有它的规范。不会限制在某个平台。任何计算机,都可以使用它。计算机程序之间的通信可以使用它。
作者回复: good。
4 - 蚂蚁内推+v2019-06-041. 「用于从互联网服务器传输超文本到本地浏览器」的说法太过片面,HTTP 是在两点之间,即服务端与客户端,而客户端不仅包括本地浏览器,服务器也可以作为客户端,其他的 App、小程序等应用程序也属于客户端。 2. HTTP 不是软件:HTTP 是没有实体的协议,而软件是一种具体实现。
作者回复: √
3 - 个人学习2019-05-31罗老师,您好,有个疑问,HTTP 是在两点之间传输数据,这个「两点」是理解为两个终端设备之间吗?但是,我们学习网络协议,知道数据是一层一层传输,从 A 终端的网络层->....->物理层,然后到 B 终端的物理层->...-> 网络层。而 HTTP 协议在这个过程仅仅能接触到的只是「客户端」以及「传输层协议」呀。所以,这个两点是否能够理解为只是「客户端」和「传输层协议」之间的数据传输?
作者回复: 网络分很多层次,但在http来看它并不关心,下层是怎么样它都无所谓,在http这一层来看就是两个端点:客户端和服务器,中间经过了多少路由网关是不考虑的。 这个就是抽象的力量,当然理论上是这么说,实际上当然是层次收发的。 后面还会讲http与协议栈,到时候可以再问。
3 - patsun2019-05-31HTTP可应用的个体是两个或者两个以上,对象可以是服务器与服务器、服务器与本地浏览器,本地浏览器与本地浏览器。 http不是网址
作者回复: 最后一个不对,两个浏览器不能通信。服务器可以当客户端,但浏览器只是客户端。
共 3 条评论3 - ifelse2023-01-17 来自浙江编程语言是人与计算机沟通交流所使用的语言,而 HTTP 是计算机与计算机沟通交流的语言。--记下来
作者回复: good
1 - 迷途2022-10-30 来自上海打卡
作者回复: go on。
1 - 半橙汁2022-07-04问题1: 对错各参一点,狭隘的理解http的部分功能确实是从互联网服务器传输超文本到本地浏览器的协议;结合本章学到的内容,不正确的理解在于太过片面,HTTP可以被定义为:‘与 HTTP 协议相关的所有应用层技术的总和’ 问题2: http不是静止存在的,不是单独的存在的,不是一门单独的语言。展开
作者回复: great
1 - Leolee2021-04-02半路出家的小白程序员报道,这个课程说得非常明白,连我这种基础不这么好的都听懂了而且入脑了。 HTTP(HyperText Transfer Protocol:超文本 传输 协议 (超媒体传输协议); 超文本(HyperText):超越了普通文本的文本,可以包含图片、视频、音频、文字,还包含了超链接,可以在当前超文本跳转到其他超文本(这个也是普通文本做不到的,与超文本的根本区别。 传输(Transfer):在两点之间传输数据,这两点之间可以有多个支点节点,但不能用来寻址、广播、路由。 协议(Protocol):双向协议,协议两方分别为请求方以及响应方(应答方)。浏览器A发送一些数据给网站B,网站再把一些数据传输给浏览器,呈现在电脑浏览器上的就是我们看到的各种内容了。展开
作者回复: 继续加油,只要努力就能成功。
1