《趣谈网络协议》00~04笔记

文章目录

关于我的仓库

  • 这篇文章是我为面试准备的学习总结中的一篇
  • 我将准备面试中找到的所有学习资料,写的Demo,写的博客都放在了这个仓库里iOS-Engineer-Interview
  • 欢迎star??
  • 其中的博客在简书,CSDN都有发布
  • 博客中提到的相关的代码Demo可以在仓库里相应的文件夹里找到

前言

  • 该系列为学习《趣谈网络协议》的系列学习笔记
  • 总结内容包括其中的重要知识概念,以及课后题的解答
  • 计算机网络的协议不仅是为了能作为进入大厂的敲门砖,也是希望能抓到计算机世界不变的本质,希望能在计算机领域努力下去
  • 与同步学习的网课《数据结构与算法之美》不同,计算机网络明显抽象,之前的接触基本为0【只有大一学习计算机导论的时候会涉及部分】,也不是很能明白其中的知识点之类的,只能说希望在学习过程中多摸索吧!
  • 由于欠缺的基础知识比较多,系列文章不会只涉及网课,该补充的知识还是得放上去
  • 多说无益,你应该开始学了

00讲想成为技术牛人?先搞定网络协议!

  • 开讲词跟多的是涉及讲课的内容与方式,学习摘录的点不多
  • 很多情况下,只要搞定了网络,一个大型系统也就搞定了一半
  • 想要不被滚滚而来的新技术淘汰,就要掌握这些可以长 久使用的知识,而网络协议就是值得你学习,而且是到 40 岁之后依然有价值的知识。
  • 困难:
    • 网络协议知识点太多,学完容易忘
    • 看上去懂了,经不住问
    • 知识点学会了,实际运用依然不会
  • 金句:看上去最是枯燥,最基础的东西往往具有最长久的生命力

01讲为什么要学习网络协议?

引入:什么是协议?

  • 这里以编译器“翻译”编程语言举例,以OC举例:
int main(int argc, const char * argv[]) {
   @autoreleasepool {
       // insert code here...
       NSLog(@"Hello, World!");
   }
   return 0;
}
  • 这里我们希望在控制台中打印出“Hello, World”,我们使用OC或者其他的高级编程语言就是一种”协议“,这个协议保证的就是让计算机能理解我们的需求,通过协议,计算机才能明白我们希望它们做什么

协议三要素

  • 由于我们使用的还是高级语言,所以需要编译器给我们进行翻译工作,这里就体现出了协议的三要素
    page2image54362736.png
  • 语法:要遵循的规则与格式【括号要成对,结束要使用分号等】
  • 语义:这一段要具备某种意义【数字减去数字是有意义的,数字减去文本一般来说就没有意义。】
  • 顺序:先做什么,后做什么【可以先加上某个数值,然后再减去某个数值】
  • 协议还有其他的特点:
    • 协议中的每个人都必须了解协议,并且预先知道所要完成的所有的步骤。
    • 协议中的每个人都必须同意并遵循它。
    • 协议必须是清楚的,每一步必须明确定义,并且不会引起误解。
  • 另外,虽然老师举了编译器中国例子,但现在通行的理解会直接把协议就默认为网络协议

协议例子

  • 网易考拉的例子:
HTTP/1.1 200 OK
Date: Tue, 27 Mar 2018 16:50:26 GMTContent-Type: text/html;charset=UTF-8
Content-Language: zh-CN

<!DOCTYPE html>
<html>
<head>
<base href="https://pages.kaola.com/" />
<meta charset="utf-8"/> <title> 网易考拉 3 周年主会场 </title>
  • 语法:符合语法,也就是说,只有按照上面那个格式来,浏览器才认。例如,上来是状态,然后是首部,然后是内容。【这里稍微有点web开发小基础就能明白三块分别是什么,哪怕是我这种天天翘课的水平?】
  • 语义:符合语义,就是要按照约定的意思来。例如,状态 200,表述的意思是网页成功返回。如果不成功,就是我们常见的“404”。【就是第一行中的200】
  • 顺序:符合顺序,你一点浏览器,就是发送出一个 HTTP 请求,然后才有上面那一串 HTTP 返回的东西。

【准备掉头发吧!】以一个在电商网站上下单的过程初识有哪些常用网络协议

  • 学00讲的时候还很快乐,觉得学这个很有用,blbl雄心壮志,结果01讲这个神仙例子就把我整懵了,乃至学完这节后每次点击链接都会想下其中有那么复杂的流程。。。还我上网体验!?
  • 由于还在学习前期,其实对于这个例子涉及到的东西有些还是不太理解,如果有大神看到这篇文章,愿意指出错误,不胜感激!
  • 唉,多说无益,开整吧!

目标IP地址

  • 我们在输入框中输入的只是URL网址:https://www.kaola.com
  • 现在我们的浏览器只知道名字是“www.kaola.com”,并不知道具体的地点,此时,我们需要获取到目标IP地址
  • 这里有两种方式:
    • 一般的地址簿协议DNS
    • 更加精确的地址簿查找协议HTTPDNS
  • 无论使用什么方式,最后都会获取到106.114.138.24这个地址【没明白,这个IP地址好像没什么特别的。。。】
  • 而IP就是互联网世界的门牌号
  • 下面就要开始打包请求,进入传输层
补充知识:URL
  • url是统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。url 是网民们在 Internet 知识海洋中寻找资源、获取信息、用 E- mail 通讯、网上交流等所必不可少的。
  • 基本URL包含模式(或称协议)、服务器名称(或IP地址)、路径和文件名,如“协议://授权/路径查询”。完整的、带有授权部分的普通统一资源标志符语法看上去如下:协议://用户名:密码@子域名.域名.顶级域名:端口号/目录/文件名.文件后缀参数=值#标志。
  • 第一部分:模式/协议(scheme):它告诉浏览器如何处理将要打开的文件。最常用的模式是超文本传输协议(Hypertext Transfer Protocol,缩写为HTTP),这个协议可以用来访问网络
  • 第二部分:第二部分是 Internet 主机名。我们希望访问的 WWW 页 面就存放在该计算机上。有了这台计算机的名 字,Internet 通过 DNS( 域名服务器) 找到与这台计算机的英文名相对应的数字地址,也叫做 IP 地址,就能够在全世界范围内找到这台计算机,不管它是在哪个国家或哪个地区。 文件所在的服务器的名称或IP地址,后面是到达这个文件的路径和文件本身的名称。服务器的名称或IP地址后面有时还跟一个冒号和一个端口号。它也可以包含接触服务器必须的用户名称和密码。
  • 第三部分:url的第三项为路径。它定义信息保存在 这台计算机上的什么地方,即哪个子目录中。 每个子目录的前面有 一条斜杠 。路径部分包含等级结构的路径定义,一般来说不同部分之间以斜线(/)分隔。询问部分一般用来传送对服务器上的数据库进行动态询问时所需要的参数。
  • 第四部分:url的第四项
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值