Nodejs基础5之网络基础概念的IP、端口,HTTP模块的创建HTTP服务、HTTP服务注意事项、浏览器查看HTTP报文

Nodejs基础

  • 网络基础概念
    • IP
      • IP的介绍
      • IP的作用
      • IP的分类
        • 共享IP-公网
          • 家庭共享——局域网
          • 公网
        • 本地回环IP地址
          • 总结
        • IP标准分类
    • 端口
      • 端口举例
      • 端口介绍
      • 总结
  • HTTP模块
    • 创建HTTP服务
    • HTTP服务注意事项
    • 浏览器查看HTTP报文
      • 查看请求报文
      • 查看请求体
      • url当中的查询字符串
      • 查看响应报文

网络基础概念

IP

IP的介绍

IP 也称为 「IP 地址」,本身是一个数字标识。例如 192.168.1.3
ip本身是一个32Bit的二进制数字,例如,11000000101010000000000100000011
但是为了标识,将每8个分为一组,转成十进制数字,并每组加上“.”来组合
Nodejs基础5之网络基础概念的IP、端口,HTTP模块的创建HTTP服务、HTTP服务注意事项、浏览器查看HTTP报文_第1张图片
Nodejs基础5之网络基础概念的IP、端口,HTTP模块的创建HTTP服务、HTTP服务注意事项、浏览器查看HTTP报文_第2张图片

IP的作用

IP本身是一个数字标识
IP用来标识网络中的设备,实现设备间的通信

IP的分类

2022年11月15日,联合国宣布世界人口达到80亿
一个ip由32位组成,最多能够使用 2^32=42,9496,7296 个设备
是远远不够使用

解决

  • 共享IP——公网IP
    • 区域共享
    • 家庭共享——局域网
  • 本地回环IP地址
共享IP-公网
家庭共享——局域网
	家庭设备:手机、电脑、手机、打印机等

Nodejs基础5之网络基础概念的IP、端口,HTTP模块的创建HTTP服务、HTTP服务注意事项、浏览器查看HTTP报文_第3张图片

公网

Nodejs基础5之网络基础概念的IP、端口,HTTP模块的创建HTTP服务、HTTP服务注意事项、浏览器查看HTTP报文_第4张图片
180.91.213.151:广域网IP或公网IP

Nodejs基础5之网络基础概念的IP、端口,HTTP模块的创建HTTP服务、HTTP服务注意事项、浏览器查看HTTP报文_第5张图片

本地回环IP地址

127.0.0.1~127.255.255.254 这期间的IP地址,都是指向本机的

总结
类型 说明
本机回环IP地址 127.0.0.1 ~ 127.255.255.254
局域网IP (私网 IP) 192.168.0.0 ~ 192.168.255.255,172.16.0.0 ~172.31.255.255,10.0.0.0 ~ 10.255.255.255
广域网 IP (公网 IP) 除上述之外
IP标准分类

IP详细学习

端口

端口举例

Nodejs基础5之网络基础概念的IP、端口,HTTP模块的创建HTTP服务、HTTP服务注意事项、浏览器查看HTTP报文_第6张图片
Nodejs基础5之网络基础概念的IP、端口,HTTP模块的创建HTTP服务、HTTP服务注意事项、浏览器查看HTTP报文_第7张图片
将集市类比成计算机,每个摊位相当于计算机上的应用程序,而摊位编号则相当于端口

端口介绍

  1. 端口:应用程序的数字标识
    一台现代计算机有65536个端口(0~65535)
    一个应用程序可以使用一个或多个端口
  2. 端口的作用:实现不同主机应用程序之间的通信

Nodejs基础5之网络基础概念的IP、端口,HTTP模块的创建HTTP服务、HTTP服务注意事项、浏览器查看HTTP报文_第8张图片

总结

端口是应用程序的数字标识
主要作用是实现了不同主机应用程序之间的通信

HTTP模块

创建HTTP服务

//1、导入http模块
const http=require('http')

//2、创建服务对象
const server=http.createServer((request,response)=>{
    response.end('Hello Http Server')  //设置响应体
})

//3、监听端口,启动服务
server.listen(9000,()=>{
    console.log("服务已经启动.......")
})

Nodejs基础5之网络基础概念的IP、端口,HTTP模块的创建HTTP服务、HTTP服务注意事项、浏览器查看HTTP报文_第9张图片

Nodejs基础5之网络基础概念的IP、端口,HTTP模块的创建HTTP服务、HTTP服务注意事项、浏览器查看HTTP报文_第10张图片

HTTP服务注意事项

  1. 命令行 ctrl + c 停止服务
  2. 当服务启动后,再更新代码时候 必须重启服务才能生效
  3. 响应内容中文乱码的解决办法

response.setHeader(‘content-type’,‘text/html;charset=utf-8’)

  1. 端口号被占用

Error: listen EADDRINUSE: address already in use :::9000

1)关闭当前正在运行监听端口的服务 ( 使用较多 )
2)修改其他端口号

  1. HTTP 协议默认端口是 80 。HTTPS 协议的默认端口是 443, HTTP 服务开发常用端口有 3000,
    8080,8090,9000 等

如果端口被其他程序占用,可以使用 资源监视器 找到占用端口的程序,然后使用 任务管理器 关闭
对应的程序

  • 第一个
    在这里插入图片描述

  • 第二个
    Nodejs基础5之网络基础概念的IP、端口,HTTP模块的创建HTTP服务、HTTP服务注意事项、浏览器查看HTTP报文_第11张图片

Nodejs基础5之网络基础概念的IP、端口,HTTP模块的创建HTTP服务、HTTP服务注意事项、浏览器查看HTTP报文_第12张图片
Nodejs基础5之网络基础概念的IP、端口,HTTP模块的创建HTTP服务、HTTP服务注意事项、浏览器查看HTTP报文_第13张图片
Nodejs基础5之网络基础概念的IP、端口,HTTP模块的创建HTTP服务、HTTP服务注意事项、浏览器查看HTTP报文_第14张图片

  • 第三个
//1、导入http模块
const http=require('http')

//2、创建服务对象
const server=http.createServer((request,response)=>{
    // response.end('Hello Http')  //设置响应体
    response.end('你好')  //设置响应体
})

//3、监听端口,启动服务
server.listen(9000,()=>{
    console.log("服务已经启动.......")
})

Nodejs基础5之网络基础概念的IP、端口,HTTP模块的创建HTTP服务、HTTP服务注意事项、浏览器查看HTTP报文_第15张图片
修改之后为:

//1、导入http模块
const http=require('http')

//2、创建服务对象
const server=http.createServer((request,response)=>{
    // response.end('Hello Http')  //设置响应体
    response.setHeader('content-type','text/html;charset=utf-8')
    response.end('你好')  //设置响应体
})

//3、监听端口,启动服务
server.listen(9000,()=>{
    console.log("服务已经启动.......")
})

Nodejs基础5之网络基础概念的IP、端口,HTTP模块的创建HTTP服务、HTTP服务注意事项、浏览器查看HTTP报文_第16张图片

  • 第四个
    再开一个终端运行上述代码:
    Nodejs基础5之网络基础概念的IP、端口,HTTP模块的创建HTTP服务、HTTP服务注意事项、浏览器查看HTTP报文_第17张图片

解决:

  1. 方法一: 关闭之前的,重新启动当前的
    Nodejs基础5之网络基础概念的IP、端口,HTTP模块的创建HTTP服务、HTTP服务注意事项、浏览器查看HTTP报文_第18张图片
  2. 方法二:修改端口号
    Nodejs基础5之网络基础概念的IP、端口,HTTP模块的创建HTTP服务、HTTP服务注意事项、浏览器查看HTTP报文_第19张图片
  • 第五个
//1、导入http模块
const http=require('http')

//2、创建服务对象
const server=http.createServer((request,response)=>{
    // response.end('Hello Http')  //设置响应体
    response.setHeader('content-type','text/html;charset=utf-8')
    response.end('你好')  //设置响应体
})

//3、监听端口,启动服务
// server.listen(9001,()=>{
//     console.log("服务已经启动.......")
// })

//3、监听端口,启动服务
server.listen(80,()=>{
    console.log("服务已经启动.......")
})

Nodejs基础5之网络基础概念的IP、端口,HTTP模块的创建HTTP服务、HTTP服务注意事项、浏览器查看HTTP报文_第20张图片

  • 第六个——注意情况

Nodejs基础5之网络基础概念的IP、端口,HTTP模块的创建HTTP服务、HTTP服务注意事项、浏览器查看HTTP报文_第21张图片
结束后再重新启动自己的服务

浏览器查看HTTP报文

查看请求报文

//1、导入http模块
const http=require('http')

//2、创建服务对象
const server=http.createServer((request,response)=>{
    // response.end('Hello Http')  //设置响应体
    response.setHeader('content-type','text/html;charset=utf-8')
    response.end('你好')  //设置响应体
})

//3、监听端口,启动服务
// server.listen(9001,()=>{
//     console.log("服务已经启动.......")
// })

//3、监听端口,启动服务
server.listen(9000,()=>{
    console.log("服务已经启动.......")
})

Nodejs基础5之网络基础概念的IP、端口,HTTP模块的创建HTTP服务、HTTP服务注意事项、浏览器查看HTTP报文_第22张图片

查看请求体

先新建一个表单

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Titletitle>
head>
<body>
<form action="http://127.0.0.1:9000" method="post">
    <input type="text" name="username"> <br>
    <input type="password" name="password"> <br>
    <input type="submit" value="提交">
form>
body>
html>

Nodejs基础5之网络基础概念的IP、端口,HTTP模块的创建HTTP服务、HTTP服务注意事项、浏览器查看HTTP报文_第23张图片
点击提交后,在网络中显示请求,点击载荷查看请求体
Nodejs基础5之网络基础概念的IP、端口,HTTP模块的创建HTTP服务、HTTP服务注意事项、浏览器查看HTTP报文_第24张图片

url当中的查询字符串

Nodejs基础5之网络基础概念的IP、端口,HTTP模块的创建HTTP服务、HTTP服务注意事项、浏览器查看HTTP报文_第25张图片

查看响应报文

Nodejs基础5之网络基础概念的IP、端口,HTTP模块的创建HTTP服务、HTTP服务注意事项、浏览器查看HTTP报文_第26张图片
Nodejs基础5之网络基础概念的IP、端口,HTTP模块的创建HTTP服务、HTTP服务注意事项、浏览器查看HTTP报文_第27张图片

你可能感兴趣的:(Nodejs,前端,网络,tcp/ip,http,node.js,vue.js,javascript,前端)