走进node.js - 服务端开发

659 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第26天,点击查看活动详情

往期推荐

# 走进 node.js
# 走进 node.js - 起步
# 走进 node.js - 模块
# 走进node.js - NPM
# 走进node.js - package.json
# 走进node.js - 文件

走进node.js - 服务端开发 学习目标

  • 服务器
  • Web 服务器
  • IP、DNS、端口号的作用
  • 命令行的使用

在浏览器输入一个地址到看到网站内容经历了什么

  1. 用户在浏览器地址栏中输入网站域名

  2. 浏览器拿到该域名自动去请求 DNS 服务器查询 用户输入的域名对应的 ip 地址

  3. 浏览器拿到 ip 地址之后,通过 ip 地址+端口号(HTTP 默认 80)和服务器建立连接(通过 三次握手

  4. 三次握手建立连接成功之后

  5. 浏览器将用户输入的 url 地址通过 HTTP 协议包装成 请求报文 ,然后通过 Socket(服务器ip地址和端口号) 发送到服务器

  6. 当 HTTP 服务器接收到客户端浏览器发送过来的请求报文时候,按照 HTTP 协议将请求报文解析出来

  7. 然后服务器拿到请求报文中的请求信息(例如请求路径 url),做相应的业务逻辑处理操作

  8. 当业务逻辑处理完毕之后,服务器将要发送给客户端的数据按照 HTTP 协议包装成 响应报文

  9. 然后服务器将响应报文数据发送给客户端浏览器

  10. 当浏览器接收到服务器发送给自己的响应报文数据的时候,浏览器根据 HTTP 协议将报文内容解析出来

  11. 浏览器拿到响应报文体中的数据开始 解析渲染 html、css,执行 JavaScript

  12. 如果在解析的过程(从上到下)中,发现有外链的标签(link、css、img)

  13. 浏览器会自动对该标签指向的 路径地址 发起新的请求,同上。

命令行

image.png

使用图形用户界面时,我们需要另一个和 shell 交互的叫做终端仿真器的程序。 在 Windows 上,一般使用操作系统自带的 cmd 或者 powershell。 在 Linux 上,如果是图形用户界面,那么可以使用 terminal 或者 konsolegnome-terminal之类 的终端仿真器,但基本上,它们都完成同样的事情,让我们能访问 shell, 你可能会因为附加的一些花俏功能而喜欢上某个终端。

关于名字,如果有人提到:控制台、终端、bash、shell、terminal 等,一般都是指上面这些。

打开命令行

  • 方式一:开始菜单搜索 cmd
  • 方式二:win + r 输入 cmd

常用命令

  • pwd(print working directory)
  • cd(change directory)
    • 切换到指定路径(相对路径或绝对路径)
  • ls(list files)
    • ls 列出当前目录文件
    • ls 目录路径 列出指定路径文件
    • ls -a 列出文件并显示隐藏文件或目录
  • cp(copy)
    • cp 源路径 目标路径
    • cp 在复制目录的时候,不会复制里面的子文件或子目录
    • -r (recursive)递归复制
  • mv(move):移动文件或者目录,还可以重命名文件或目录
  • mkdir(make directory):创建目录
  • rm(remove):删除文件或目录
    • rf 递归删除:直接将整个目录包括里面的内容都删掉
  • rmdir 目录名称
    • 只能删除空目录
  • clear:清屏
  • touch 文件名
    • 根据文件名创建新的文件
  • cat 文件名
    • 看指定的文本文件
# print working directory 打印当前工作目录
pwd

# change directory 切换目录
cd

# 回到上一级目录
cd ..

# directory 列出当前目录列表
dir

# 列出指定路径的目录列表
dir 目录路径

# copy 拷贝
cp 源 目标

# list files 列出目录列表
# 同 dir,仅适用于类 Unix 操作系统
ls

# 创建目录
mkdir

# 删除文件
remove

# 清屏
clear

退出命令行

  • 直接关闭即可
  • 或者输入 exit 也可以退出

第一个网站

前端开发最终还是属于Web 开发中的一个分支,想要成为一名合格的前端开发人员,就必须要充分理解 Web 的概念

image.png