[前端笔记026]Node.js之网络通信

前言

基础知识

  • https://baidu.com/xxx/xxx
  • 协议名:https
  • 域名 domain:ip地址别名,baidu.com
  • /xxx/xxx:网络资源路径

在浏览器中输入网址后发生了什么

  1. DNS解析,获取网站的ip地址
  2. 浏览器与服务器建立TCP/IP连接,三次握手
  3. 向服务器发送请求,http协议
  4. 服务器处理请求,并返回响应,http协议
  5. 浏览器渲染响应的页面
  6. 断开连接,四次挥手

DNS解析过程

先缓存,再host,再本地DNS,本地DNS请求根服务器获得顶级域名服务器地址,本地DNS请求顶级域名服务器获得nameserver服务器地址,本地DNS请求nameserver服务器获得正确ip和到期时间,本地DNS缓存映射后发给用户。图片名

TCP/IP建立连接和断开过程

  • 又名客户端与服务器如何建立和断开连接

  • 三次握手(连接)与四次挥手(断开)

  • TCP报文头部结构:

    几个重要的字段

    1. 序号,seq:指的是本报文段所发送的数据的第一个字节的序号
    2. 确认号,ack:是期望收到对方下一个报文段的第一个数据字节的序号
    3. 控制位,确认ACK:0/1,1时有效,在连接建立后所有的传送的报文段都必须把ACK置为1。
    4. 控制位,同步SYN:在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文段。对方若同意建立连接,则应在响应的报文段中使SYN=1和ACK=1,因此SYN置为1就表示这是一个连接请求或连接接受报文。
    5. 控制位,结束FIN:用来释放一个连接。当FIN=1时,表明此报文段的发送发的数据已发送完毕,并要求释放运输连接。
  • 三次握手:1.客户端 向 服务器 发送连接请求;2.服务器收到请求,向客户端返回消息;3.客户端 向 服务器 发送同意连接信息

  • 四次挥手(断开):1.A向B说发完了,请求断开;2.B向A说知道了;3.B向A说收完了,可以断开;4. A向B说知道了

网络模型

  1. OSI七层模型
  2. TCP/IP体系结构,四层模型
  3. 教科书中的五层模型

向服务器发送http请求,服务器响应请求

  • 服务器主要功能,接收请求报文,发送响应报文

  • http协议属于 TCP/IP 协议族,属于应用层,

  • http规定了,发送请求(request)和响应请求(response)时,通信的报文格式

  • http协议不安全,明文发送;https相对安全,加了个套接字

  • 请求报文(request):客户端发给服务器的报文

  • 请求报文格式:

    1. 请求首行

      GET /index.html?name=xxxx HTTP/1.1

      第一部分 GET 表示请求方式,请求方式常用的有get请求和post请求

      • GET请求主要用来向服务器 请求 资源
      • POST请求主要用来向服务器 发送 数据

      第二部分 /index.html?name=xxxx,表示请求资源的路径,问号后的为查询字符串

      • 查询字符串为名值对结构,多个名值对直接使用&连接
      • GET请求通过查询字符串的方式将数据发送给服务器,安全性较差,且长度有限制(浏览器有限制,HTTP无限制)
      • POST通过请求体来发送数据,即GET请求无请求体,POST请求有请求体,无法在地址栏直接查看,可在浏览器载荷中查看,大小无限制
      • 能用POST尽量使用POST

      第三部分 HTTP/1.1,表示协议版本

    2. 请求头
      名值对结构,给服务器传递信息,需要了解的:
      Accept:浏览器可以接受的文件类型
      Accept-Encoding:浏览器允许的压缩编码
      Accept-Language:浏览器可以接受的语言
      User-Agent:用户代理,用来描述浏览器信息的字符串,浏览器类型、内核

    3. 空行

    4. 请求体
      GET请求无请求体,POST请求有请求体

  • 响应报文格式:

    1. 响应首行
      HTTP/1.1 200 OK
      第一部分 HTTP/1.1,表示协议版本
      第二部分 200,表示响应状态码,响应状态码规则

      • 1xx,请求处理中
      • 2xx,表示成功
      • 3xx,表示请求重定向
      • 4xx,表示客户端错误,如404
      • 5xx,表示服务器错误

      第三部分 OK,对响应状态码的描述

    2. 响应头
      名值对结构,给浏览器传递信息,需要了解的:
      Content-Type:描述响应体的类型
      Content-Length:描述响应体的大小

    3. 空行

    4. 响应体
      服务器返回的信息,GET请求无响应体,POST请求有响应体

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值