Appearance
网络基础
本节目标:理解“网络基础”的核心思路,并能把它用于实际开发或面试表达。
说明:原 OneNote 中有图片引用,但图片未包含在导出目录中;本页保留了可用的文字与代码内容。 HTTP核心概念
** **一.课程主题:
- 掌握HTTP中必备的概念
- 掌握node中的http服务的创建及应用
- url模块的使用
- 客户端和服务端的创建
- http静态服务封装
** **二.课程内容:
** **1)什么是HTTP?应用层
通常的网络是在TCP/IP协议族的基础上来运作的,HTTP是一个子集。
** **2)TCP/IP协议族 (HTTP应用层协议 在传输层的基础上增加了一些自己的内容)
协议简单来说就是通信的规则,例如:通信时谁先发起请求,怎样结束,如何进行通信。把互联网相关的协议统称起来称为TCP/IP
** **3)协议分层(OSI协议分层)
(物,数),网,传,(会,表,应)
- 应用层 HTTP,FTP,DNS (与其他计算机进行通讯的一个应用服务,向用户提供应用服务时的通信活动)
- 传输层 TCP(可靠) UDP 数据传输 (HTTP -> TCP DNS->UDP)
- 网络层 IP 选择传输路线 (通过ip地址和mac地址)(使用ARP协议凭借mac地址进行通信)
- 链路层 网络连接的硬件部分
** **4) HTTP特点
- http是不保存状态的协议,使用cookie来管理状态 (登录 先给你cookie 我可以看一下你有没有cookie)
- 为了防止每次请求都会造成无谓的tcp链接建立和断开,所以采用保持链接的方式 keep-alive
- 以前发送请求后需要等待并收到响应,才能发下一个,现在都是管线化的方式 (js css 可以并发请求 6 2) cdn
** **5) HTTP缺点
通信采用明文 不验证通信方的身份 无法验证内容的完整性 (内容可能被篡改) 通过SSL(安全套阶层)建立安全通信线路 HTTPS (超文本传输安全协议)
** **6) HTTP方法 (get post 简单请求) Resful风格
- GET:获取资源 /user?
- POST:传输实体主体 请求体中
- PUT:来传输文件
- HEAD: 获取报文首
- DELETE: 删除文件
- OPTIONS:询问支持的方法 跨域 如果默认发送的是get/post 不会发送options的 ""复杂请求""get /post (a:1) headers:{a:1} put / delete 复杂的请求
REST API Resful风格 根据路径和不同的方法 就能确定对资源进行什么操作 跨域是浏览器之前的 服务器之间没有跨域问题 反向代理 、后端设置cors c.com-> d.com OPTIONS 非简单请求会发送options (options 直接返回ok就可以了)
** **7) HTTP状态码 (发请求 命令行 curl命令) 服务端
curl命令行工具 postman 1xx 信息性状态码 websocket upgrade 2xx 成功状态码 200 204(没有响应体) 206(范围请求 暂停继续下载) 获取网页的部分请求 3xx 重定向状态码 301 302 303 post -> get 304(删除报文主体 在次发送请求) 307 (不会从POST转为GET) 4xx 客户端错误状态码 400 401 403 404 405 方法不允许 5xx 服务端错误状态码 500 503
** **8) http客户端和服务端通信
Http报文,http交互的信息称之为http报文
通用首部字段:请求和响应报文都有的首部 实体首部字段:描述实体部分的字段
** **9) URI和URL
** **URI
URI(Uniform Resource Identifier)是统一资源标识符,在某个规则下能把这个资源独一无二标示出来,比如人的身份证号
- Uniform 不用根据上下文来识别资源指定的访问方式
- Resource 可以标识的任何东西
- Identifier 表示可标识的对象
** **URL
统一资源定位符,表示资源的地点,URL时使用浏览器访问WEB页面时需要输入的网页地址
- Uniform 不用根据上下文来识别资源指定的访问方式
- Resource 可以标识的任何东西
- Location 定位
** **10) 报文应用
Content-Encoding : gzip压缩 form-data: 多部分对象集合 上传文件 range: 范围请求 206 accept-language:内容协商 前端控制 后端控制 host:单主机多域名 304 http缓存 referer:访问来源 防盗链 proxy:代理、网关和隧道 user-agent:用户内核 安全相关的头: X-Frame-Options、X-XSS-Protection (安全 csrf xss https 加密) > 来自 <http://www.zhufengpeixun.com/jg-vue/node/http-1.html#_9-uri%E5%92%8Curl>
## 当输入url时会做哪些事? 前端浏览器渲染原理
## OSI 七层模型
为什么要分层,可以将复杂的逻辑分成几个小的功能来处理 ,复杂的问题简单化。修改变得会比较容易;
- 物理层:网线、光纤来传递数据。 双绞线 (
0,1),即如何表现0.1。 - 数据链路层:两个设备之间如何传递数据,即直接如何传递,建立逻辑连接的。
mac地址(交换机),在链路层传递的数据叫数据帧。
- 网络层:寻址,进行寻址操作,通过
ip找到对应的mac地址,可以通信 ,(主要靠路由器) - 传输层:因为网络层不可靠,保证可靠传输,需要用
tcp(对数据的完整性保护,三次握手,四次挥手); - 会话层:建立会话;
- 表示层:数据的表示形式、安全性等;
- 应用层:用户最终访问的接口;
\> 下层是为了为上层提供服务的 \> tcp的概念 每一层的协议 -》
(http)
>http://www.zhufengpeixun.com/grow/html/67-1-network.html送快递:
- 准备要发货的内容;
- 打包;
- 添加寄件信息;
- 物流会再次打包;
- 找到寄送的地址;
- 找到对应的路;
- 拿车送过去;
