计算机网络常用知识点

1、Get 和 Post 请求的区别
GetPost
应用场景对服务器资源不会产生影响对服务器资源会产生影响
是否缓存否,(除非有中间代理服务器实现缓存)
发送报文的格式报文中实体部分为空报文中实体部分一般为向服务器发送的数据
安全性不安全安全
长度限制有(HTTP 规范没有对 URL 长度限制,时浏览器、代理服务器的读取限制)
参数类型支持更多的数据类型
2、URL 组成部分

【】协议部分 // 域名部分 : 端口部分 / 虚拟目录部分 / 文件民部分 ?参数部分 # 锚部分

【】其中 「协议部分 // 域名部分」 是必须的内容

3、TCP 与 UDP

【】TCP是一个面向连接的传输层协议。是可靠的、基于字节流的;TCP还具有超时重传、拥塞控制的机制

【】UDP是一个无连接的传输层协议。是不可靠的、面向报文的

【】可靠性指 TCP 具有确认应答 ACK 和序列号来实现可靠传输

【】TCP 三次握手:

  • 第一步:客户端发送SYN报文到服务端发起握手
  • 第二步:服务端收到SYN报文之后回复SYN和ACK报文给客户端
  • 第三步:客户端收到SYN和ACK,向服务端发送一个ACK报文
4、HTTP 1.0 和 HTTP 1.1 之间的区别

【】连接方面,1.0默认使用非持久连接,1.1默认使用持久连接,通过重复使用同一个TCP连接,减少多次建立连接带来的时延

【】资源请求方面,1.0存在浪费带宽的现象,不能支持断点续传功能等;1.1请求头引入 range 头域,允许只请求资源的某个部分

【】缓存方面,1.1 引入了更多的缓存控制策略

  • HTTP1.0 只使用 header 中的Last-Modified、If-Modified-Since(协商缓存) 和 Expires(强缓存) 作为缓存失效的标准
  • HTTP 1.1 中新增加了 E-tag、If-None-Match、Cache-Control 等缓存控制标头来控制缓存失效

【】http1.1 中新增了 host 字段,用来指定服务器的域名,可以将请求发往到同一台服务器上的不同网站

【】1.1 相对于 1.0 新增了很多请求方法

  • HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法
  • HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT
5、HTTP 1.1 和 HTTP 2.0 之间的区别

【】2.0是一个二进制协议,头信息和数据体都是二进制,但是1.1的头信息是文本(ASCII编码)。二进制统称为帧,可以分为头信息帧和数据帧。帧的概念是实现多路复用的基础

【】2.0实现了多路复用,在同一个TCP连接中客户端和服务端可以同时发送多个请求与回应,而且不需要按照顺序一一发送,避免“队头堵塞”问题

【】数据流,2.0使用数据流概念,即数据包

【】2.0实现了头信息压缩

【】服务器推送,2.0允许服务器未经请求,主动向客户端发送资源(静态资源)。使用服务器推送提前给客户端推送必要的资源,这样浏览器就不用发起后续请求去获取一些资源,相对减少一些延迟时间

6、HTTP 3.0

【】基于 UDP 协议的 QUIC 协议

【】出现的原因:TCP 需要三次握手进行连接;TCP 的队头阻塞问题仍然存在,多个请求跑在一个 TCP 连接中,当时出现丢包时,整个 TCP 都要开始等待重传,就会阻塞该 TCP 连接中的所有请求

【】QUIC 优点:

  • 实现了快速握手功能
  • 实现了类似 TCP 的可靠传输,在 UDP 基础上增加了一层,使用的 ACK 模式
  • 集成了 TLS 加密功能
  • 实现了多路复用,提供了拥塞控制机制
7、HTTP 和 HTTPS 协议的区别

【】HTTPS协议需要CA证书,费用较高;而HTTP协议不需要

【】HTTP协议是超文本传输协议,信息是明文传输的,HTTPS则是具有安全性的SSL加密传输协议

【】使用不同的连接方式,端口也不同,HTTP协议端口是80,HTTPS协议端口是443

【】HTTP协议连接很简单,是无状态的;HTTPS协议是有SSL和HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP更加安全

8、HTTP 协议的缺点

【】无状态:HTTP 是一个无状态的协议,HTTP 服务器不会保存关于客户的任何信息

【】明文传输: 协议中的报文使用的是文本形式,这就直接暴露给外界,不安全

【】不安全:明文传输可能被窃听,缺少身份认证也可能遭遇伪装,还有缺少报文完整性验证可能遭到篡改

【】队头阻塞:开启长连接时,只建立一个 TCP 连接,同一时刻只能处理一个请求,那么当请求耗时过长时,其他请求就只能阻塞状态

9、HTTP 状态码

【】1XX:接受的请求正在处理。 2XX:请求正常处理完毕。 3XX:需要进行附加操作完成求。 4XX:服务器无法处理请求。 5XX:服务器处理请求出错

101在HTTP升级为WebSocket的时候,如果服务器同意变更,就会发送状态码 101103客户端应在服务端返回HTML前开始预加载资源
200请求被服务器端正常处理204请求已经在服务器端正常处理了,但是没有返回的内容
206客户端进行了范围请求301永久重定向
302临时重定向303请求对应的资源存在着另一个 URI,应使用 GET 方法定向获取请求的资源
304浏览器缓存相关307临时重定向,不允许浏览器将原本为 POST 的请求重定向到 GET 请求上
400请求报文中存在语法错误401发送的请求需要有通过 HTTP 认证(BASIC 认证、DIGEST 认证)的认证信息
403请求资源的访问被服务器拒绝404服务器上无法找到请求的资源
405客户端请求的方法虽然能被服务器识别,但是服务器禁止使用该方法500服务器端在执行请求时发生了错误
502扮演网关或代理角色的服务器,从上游服务器中接收到的响应是无效的503服务器暂时处于超负载或正在进行停机维护,现在无法处理请求
504网关或者代理的服务器无法在规定的时间内获得想要的响应
10、常见的请求头

【】通用标头

  • Date:可以出现在请求标头和响应标头中,表示的是格林威治标准时间
  • Cache-Control:可以出现在请求标头和响应标头中,控制缓存的行为
  • Connection:决定当前的事物完成后是否关闭网络连接。持久连接:keep-alive。 非持久连接:close

【】实体标头:描述消息正文内容的HTTP标头

Content-Encoding实体主体适应的编码方式Content-Language实体主体的自然语言
Content-Length实体主体的大小(字节)Content-Location替代对应资源的URL
Content-Range实体主体的位置范围Content-Type实体主体的媒体类型

【】请求标头

User-AgentHTTP客户端程序的信息Referer对请求中URL的原始获取方
If-Modified-Since比较更新时间Host请求资源服务器
Accept用户代理可以处理的媒体类型Accept-Charset优先的字符集
Accept-Encoding优先的内容编码Accept-Language优先的语言

【】响应标头

  • Keep-Alive:设置超时时长和最大请求数,需要将 Connection 首部的值设置为 “keep-alive” 这个首部才有意义
  • Set-Cookie:用于服务器向客户端发送 sessionID
  • Location:令客户端重定向至指定URL
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值