趣谈网络协议
刘超
前网易研究院云计算技术部首席架构师
128845 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 51 讲
趣谈网络协议
15
15
1.0x
00:00/00:00
登录|注册

第14讲 | HTTP协议:看个新闻原来这么麻烦

前面讲述完传输层,接下来开始讲应用层的协议。从哪里开始讲呢,就从咱们最常用的 HTTP 协议开始。
HTTP 协议,几乎是每个人上网用的第一个协议,同时也是很容易被人忽略的协议。
既然说看新闻,咱们就先登录 http://www.163.com
http://www.163.com 是个 URL,叫作统一资源定位符。之所以叫统一,是因为它是有格式的。HTTP 称为协议,www.163.com 是一个域名,表示互联网上的一个位置。有的 URL 会有更详细的位置标识,例如 http://www.163.com/index.html 。正是因为这个东西是统一的,所以当你把这样一个字符串输入到浏览器的框里的时候,浏览器才知道如何进行统一处理。

HTTP 请求的准备

浏览器会将 www.163.com 这个域名发送给 DNS 服务器,让它解析为 IP 地址。有关 DNS 的过程,其实非常复杂,这个在后面专门介绍 DNS 的时候,我会详细描述,这里我们先不管,反正它会被解析成为 IP 地址。那接下来是发送 HTTP 请求吗?
不是的,HTTP 是基于 TCP 协议的,当然是要先建立 TCP 连接了,怎么建立呢?还记得第 11 节讲过的三次握手吗?
目前使用的 HTTP 协议大部分都是 1.1。在 1.1 的协议里面,默认是开启了 Keep-Alive 的,这样建立的 TCP 连接,就可以在多次请求中复用。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《趣谈网络协议》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(115)

  • 最新
  • 精选
  • 起风了001
    以前一直不是很确定Keep-Alive的作用, 今天结合tcp的知识, 终于是彻底搞清楚了. 其实就是浏览器访问服务端之后, 一个http请求的底层是tcp连接, tcp连接要经过三次握手之后,开始传输数据, 而且因为http设置了keep-alive,所以单次http请求完成之后这条tcp连接并不会断开, 而是可以让下一次http请求直接使用.当然keep-alive肯定也有timeout, 超时关闭.

    作者回复: 赞

    6
    68
  • Untitled
    QUIC说是基于UDP,无连接的,但是老师又说到是面向连接的,看的晕乎乎的。。

    作者回复: 讲tcp的时候讲了,所谓的连接其实是两边的状态,状态如果不在udp层维护,就可以在应用层维护

    29
  • 墨萧
    每次http都要经过TCP的三次握手四次挥手吗

    作者回复: keepalive就不用

    2
    24
  • skye
    “一前一后,前面 stream 2 的帧没有收到,后面 stream 1 的帧也会因此阻塞。”这个和队首阻塞的区别是啥,不太明白?

    作者回复: 一个是http层的,一个是tcp层的

    4
    17
  • 花仙子
    UDP不用保持连接状态,不用建立更多socket,是不是就说服务端只能凭借客户端的源端口号来判定是客户端哪个应用发送的,是吗?

    作者回复: 是的

    2
    12
  • 柯察金
    怎么说呢,感觉听了跟看书效果一样的,比较晦涩。因为平时接触比较多的就是 tcp http ,结果听了感觉对实际开发好像帮助不大,因为都是一个个知识点的感觉,像准备考试。希望能结合实际应用场景,讲解。

    作者回复: 太深入就不适合听了,所以定位还是入门

    3
    11
  • 传说中的风一样
    cache control部分讲错了,max–age不是这么用的

    作者回复: 这里忘了说一下客户端的cache-control机制了,一个是客户端是否本地缓存过期。这里重点强调的类似varnish缓存服务器的行为

    2
    8
  • 意无尽
    哇,竟然坚持到这里了(虽然一半都还不到),虽然前面也有很多不懂。基本上从第二章开时候每一节都会花费一两个小时去理解,但是花费确实值啊,让我一个网络小白慢慢了解了网络的各个方面,感觉像是打开了另一个奇妙的世界!相当赞,后期还要刷第二遍!学完这个必须继续购买趣谈Linux操作系统!感谢刘超老师!

    作者回复: 谢谢

    6
  • stark
    有个地方不是很明白,就是里面说的流数据,比如,我在实际的应用里怎么查看下这些数据什么,比如像top这样的,怎么查看呢?

    作者回复: tcpdump,其实dump出来没有所谓的流,都是感觉上的流,还不是一个个的网络包

    6
  • heliang
    http2.0 并行传输同一个请求不同stream的时候,如果“”前面 stream 2 的帧没有收到,后面 stream1也会阻塞",是阻塞在tcp重组上吗

    作者回复: 是的

    4
收起评论
显示
设置
留言
99+
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部