计算机网络基础

自己网上看的关于计算机网络的知识的各部分内容总结,可能没有那么专业和深入,应对校招前端基础知识。后续还会补充和更新~

目录

一、常见的前后台通信协议

1、通信协议概述

发展过程

IDL

2、JCE协议

3、Protobuf

二、计算机网络体系结构

1、五层协议

2、OSI的七层协议

3、TCP/IP四层协议

三、HTTP基本概念和请求方法

1、基本概念

2、特点:

3、消息结构:

1、客户端请求消息:

2、服务器响应消息:

4、HTTP请求方法

四、HTTP响应头

1、 通用首部字段

2、 请求首部字段

3、响应首部字段

4、实体首部字段

五、HTTP状态码

六、缓存

1、优点

2、实现方法

3、Cache-Control

1. 禁止进行缓存

2. 强制确认缓存

3. 私有缓存和公共缓存

4. 缓存过期机制

七、HTTPS

1、加密方法

2、认证

3、完整性保护

4、缺点

八、Websocket


一、常见的前后台通信协议

1、通信协议概述

通信协议是指两个节点之间为了协同工作,实现信息交换而协商的规则和约定。例如规定字节序各个字段类型,使用什么压缩算法或加密算法等。

发展过程

原始数据→版本号控制→使用tag→强化拓展性的TLV(tag ,length,value)→自解释的性的TTLV(tag,type,length,value)→跨语言特性→IDL语言的产生→代码自动化

IDL

IDL是一种描述性语言,也是一个中间语言,IDL的一个使命就是规范和约束,就像前面提到的规范使用类型,提供跨域语言特性,通过工具分析IDL文件,生成各种代码。

2、JCE协议

JCE协议是一种二进制支持字段动态增加,代码自动生成,跨平台的通信数据传输协议。是一种类C++的IDL用于生成具体的服务接口文件。

3、Protobuf

Google Protocol Buffer 谷歌公司内部的混合语言数据标准

二、计算机网络体系结构

1、五层协议

应用层(5):为特定应用程序提供数据传输服务,例如 HTTP、DNS 等/协议。数据单位为报文。

传输层(4):为进程提供通用数据传输服务。运输层包括两种协议:传输控制协议 TCP,提供面向连接、可靠的数据传输服务,数据单位为报文段;用户数据报协议 UDP,提供无连接、尽最大努力的数据传输服务,数据单位为用户数据报。TCP 主要提供完整性服务,UDP 主要提供及时性服务。

网络层(3):为主机提供数据传输服务。

数据链路层(2):链路层协议就是为同一链路的主机提供数据传输服务。数据链路层把网络层传下来的分组封装成帧。

物理层(1):物理层的作用是尽可能屏蔽传输媒体和通信手段的差异,使数据链路层感觉不到这些差异。

2、OSI的七层协议

应用层(7)

表示层(6):数据压缩、加密以及数据描述,这使得应用程序不必关心在各台主机中数据内部格式不同的问题。

会话层(5):建立及管理会话。

传输层(4)

网络层(3)

数据链路层(2)

物理层(1)

3、TCP/IP四层协议

(见图)

三、HTTP基本概念和请求方法

1、基本概念

HTTP超文本传输协议  www都必须遵守该协议 

基于TCP/IP通信协议来传递数据

2、特点:

1、HTTP是无连接协议,限制每次连接处理一次请求并收到答复后断开连接。→节省传输时间

2、HTTP是媒体独立的 任何数据都可以通过HTTP请求客户端及服务器指定使用适合的MIME-type内容类型。

3、HTTP是无状态协议→对事物处理没有记忆能力

3、消息结构:

1、客户端请求消息:

请求行(request line),请求头部(header),空行,请求数据

请求行:包含了请求方法、URL、协议版本。

请求头部:每个首部都有一个首部名称,以及对应的值。

空行:用来分隔头部和内容主体 Body。

请求数据:请求的内容主体

2、服务器响应消息:

状态行,消息报头,空行,响应正文。

状态行:包含协议版本、状态码以及描述,最常见的是 200 OK 表示请求成功了。

消息报头:头部内容。

空行:分隔首部和内容主体。

响应正文:响应的主体内容。

4、HTTP请求方法

1、GET

请求指定的页面信息好,并返回实体主体。

2、HEAD

获取报文头部,类似于GET 除了报文头部没有具体内容。

3、POST

传输实体主体,传输数据

4、PUT

上传文件,由于自身不带验证机制,任何人都可以上传文件,因此存在安全性问题,一般不使用该方法。

5、PATCH

对资源进行部分修改。PUT 也可以用于修改资源,但是只能完全替代原始资源,PATCH 允许部分修改。

6、DELETE

删除文件,与 PUT 功能相反,并且同样不带验证机制。

7、OPTIONS

查询支持的方法,返回请求方法。

8、CONNECT

要求在与代理服务器通信时建立隧道。

9、 TRACE

追踪路径,服务器会将通信路径返回给客户端。

四、HTTP响应头

有 4 种类型的首部字段:通用首部字段、请求首部字段、响应首部字段和实体首部字段。

1、 通用首部字段

Cache-Control    控制缓存的行为
Connection    控制不再转发给代理的首部字段、管理持久连接
Date    创建报文的日期时间
Pragma    报文指令
Trailer    报文末端的首部一览
Transfer-Encoding    指定报文主体的传输编码方式
Upgrade    升级为其他协议
Via    代理服务器的相关信息
Warning    错误通知

2、 请求首部字段

Accept    用户代理可处理的媒体类型
Accept-Charset    优先的字符集
Accept-Encoding    优先的内容编码
Accept-Language    优先的语言(自然语言)
Authorization    Web 认证信息
Expect    期待服务器的特定行为
From    用户的电子邮箱地址
Host    请求资源所在服务器
If-Match    比较实体标记(ETag)
If-Modified-Since    比较资源的更新时间
If-None-Match    比较实体标记(与 If-Match 相反)
If-Range    资源未更新时发送实体 Byte 的范围请求
If-Unmodified-Since    比较资源的更新时间(与 If-Modified-Since 相反)
Max-Forwards    最大传输逐跳数
Proxy-Authorization    代理服务器要求客户端的认证信息
Range    实体的字节范围请求
Referer    对请求中 URI 的原始获取方
TE    传输编码的优先级
User-Agent    HTTP 客户端程序的信息

3、响应首部字段

Accept-Ranges    是否接受字节范围请求
Age    推算资源创建经过时间
ETag    资源的匹配信息
Location    令客户端重定向至指定 URI
Proxy-Authenticate    代理服务器对客户端的认证信息
Retry-After    对再次发起请求的时机要求
Server    HTTP 服务器的安装信息
Vary    代理服务器缓存的管理信息
WWW-Authenticate    服务器对客户端的认证信息

4、实体首部字段

Allow    资源可支持的 HTTP 方法
Content-Encoding    实体主体适用的编码方式
Content-Language    实体主体的自然语言
Content-Length    实体主体的大小
Content-Location    替代对应资源的 URI
Content-MD5    实体主体的报文摘要
Content-Range    实体主体的位置范围
Content-Type    实体主体的媒体类型
Expires    实体主体过期的日期时间
Last-Modified    资源的最后修改日期时间

五、HTTP状态码

状态码类别含义
1XXInformational(信息性状态码)接收的请求正在处理
2XXSuccess(成功状态码)请求正常处理完毕
3XXRedirection(重定向状态码)需要进行附加操作以完成请求
4XXClient Error(客户端错误状态码)服务器无法处理请求
5XXServer Error(服务器错误状态码)服务器处理请求出错

                          该链接有详细的状态码内容

六、缓存

1、优点

缓解服务器压力;

降低客户端获取资源的延迟:缓存通常位于内存中,读取缓存的速度更快。并且缓存服务器在地理位置上也有可能比源服务器来得近,例如浏览器缓存。

2、实现方法

让代理服务器进行缓存;

让客户端浏览器进行缓存。

3、Cache-Control

HTTP/1.1 通过 Cache-Control 首部字段来控制缓存。

1. 禁止进行缓存

no-store 指令规定不能对请求或响应的任何一部分进行缓存。

2. 强制确认缓存

no-cache 指令规定缓存服务器需要先向源服务器验证缓存资源的有效性,只有当缓存资源有效时才能使用该缓存对客户端的请求进行响应。

3. 私有缓存和公共缓存

private 指令规定了将资源作为私有缓存,只能被单独用户使用,一般存储在用户浏览器中。
public 指令规定了将资源作为公共缓存,可以被多个用户使用,一般存储在代理服务器中。

4. 缓存过期机制

max-age 指令出现在请求报文,并且缓存资源的缓存时间小于该指令指定的时间,那么就能接受该缓存。

max-age 指令出现在响应报文,表示缓存资源在缓存服务器中保存的时间。
Expires 首部字段也可以用于告知缓存服务器该资源什么时候会过期。

在 HTTP/1.1 中,会优先处理 max-age 指令;
在 HTTP/1.0 中,max-age 指令会被忽略掉。

七、HTTPS

HTTPS是以安全为目标的HTTP通道,在HTTP下加入SSL通信,再由SSL和TCP通信,也就是说HTTPS使用了隧道进行通信,通过SSL,HTTP具有了加密,认证和完整性保护。

1、加密方法

<1>对称密匙加密(加密解密同一密匙)

优点:运算速度快。

缺点:无法安全的将密匙传输给通信方。

<2>非对称密匙(加密解密不同密匙)

优点:更安全的将公开密匙传输给通信方。

缺点:运算速度慢。

<3>HTTPS采用的加密方式→混合加密

使用非对称密钥加密方式,传输对称密钥加密方式所需要的 Secret Key,从而保证安全性;获取到 Secret Key 后,再使用对称密钥加密方式进行通信,从而保证效率。

2、认证

通过使用 证书 来对通信方进行认证。

数字证书认证机构(CA,Certificate Authority)是客户端与服务器双方都可信赖的第三方机构。

服务器的运营人员向 CA 提出公开密钥的申请,CA 在判明提出申请者的身份之后,会对已申请的公开密钥做数字签名,然后分配这个已签名的公开密钥,并将该公开密钥放入公开密钥证书后绑定在一起。

进行 HTTPS 通信时,服务器会把证书发送给客户端。客户端取得其中的公开密钥之后,先使用数字签名进行验证,如果验证通过,就可以开始通信了。

3、完整性保护

SSL 提供报文摘要功能来进行完整性保护。

HTTP 也提供了 MD5 报文摘要功能,但不是安全的。例如报文内容被篡改之后,同时重新计算 MD5 的值,通信接收方是无法意识到发生了篡改。

HTTPS 的报文摘要功能之所以安全,是因为它结合了加密和认证这两个操作。试想一下,加密之后的报文,遭到篡改之后,也很难重新计算报文摘要,因为无法轻易获取明文。

4、缺点

1、HTTPS在TCP时握手更慢,约多50%时间;且增加10%~20%的耗电。

2、SSL需要资金,越高级的SSL证书价格越高。

3、不如HTTP高效,会增加数据开销和功耗。

4、SSL证书需要绑定IP,不能在同一IP上绑定多个域名。

八、Websocket

(未完待续...)

             点击查看 JS基础总结地址

             点击查看 JS高级总结地址

(部分引自力扣(LeetCode)《校招基础知识详解》作者:CyC2018 链接:https://leetcode-cn.com/leetbook/read/tech-interview-cookbook/oewonj/)

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qd_yang_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值