首页 > 编程语言 >nodejs学习计划--(三)http协议和IP介绍

nodejs学习计划--(三)http协议和IP介绍

时间:2024-02-06 17:04:16浏览次数:23  
标签:HTTP 请求 nodejs -- IP 响应 html http

一、 HTPP协议

1、概念

HTTP(hypertext transport protocol)协议;中文叫超文本传输协议 是一种基于TCP/IP的应用层通信协议 这个协议详细规定了 浏览器 和万维网 服务器 之间互相通信的规则。 协议中主要规定了两个方面的内容

  • 客户端:用来向服务器发送数据,可以被称之为请求报文
  • 服务端:向客户端返回数据,可以被称之为响应报文

报文:可以简单理解为就是一堆字符串

示例:
请求行:POST http://www.baidu.com:80/index.html?a=100&b=200#logo HTTP/1.1
请求头:HOST: http:// www.baidu.com
      ...
空格:
请求体:{"keywords":"手机","price":2000}

2、请求报文的组成

  • 请求行
  • 请求头
  • 空行
  • 请求体

1. HTTP 的请求行

  • 请求方法(getpostputdelete等)
  • 请求 URL(统一资源定位器) 例如:http://www.baidu.com:80/index.html?a=100&b=200#logo
    • http: 协议(httpsftpssh等)
    • www.baidu.com 域名
    • 80 端口号
    • /index.html 路径
    • a=100&b=200 查询字符串
    • #logo 哈希(锚点链接)
  • HTTP协议版本号

2. HTTP 请求头

  • 格式:『头名:头值』
  • 常见的请求头有
请求头 解释
Host 主机名
Connection 连接的设置 keep-alive(保持连接);close(关闭连接)
Cache-Control 缓存控制 max-age = 0 (没有缓存)
Upgrade-Insecure-Requests 将网页中的http请求转化为https请求(很少用)老网站升级
User-Agent 用户代理,客户端字符串标识,服务器可以通过这个标识来识别这个请求来自哪个客户端 ,一般在PC端和手机端的区分
Accept 设置浏览器接收的数据类型
Accept-Encoding 设置接收的压缩方式
Accept-Language 设置接收的语言 q=0.7 为喜好系数,满分为1
Cookie 储存

3. HTTP 请求体

  • 请求体内容的格式是非常灵活的, (可以是空)==> GET请求, (也可以是字符串,还可以是JSON)===> POST请求 例如:
    • 字符串:keywords=手机&price=2000
    • JSON{"keywords":"手机","price":2000}

3、响应报文的组成

  • 响应行
  • 响应头
  • 空行
  • 响应体
示例:
响应行:HTTP/1.1 200 OK
响应头:Cache-Control: private
      ...
空行
响应体:

1. 响应行

2. 响应头

Cache-Control:缓存控制 private 私有的,只允许客户端缓存数据
Connection 链接设置
Content-Type:text/html;charset=utf-8 设置响应体的数据类型以及字符集,响应体为html,字符集
utf-8
Content-Length:响应体的长度,单位为字节

3. 响应体

响应体内容的类型是非常灵活的,常见的类型有 HTML、CSS、JS、图片、JSON

二、IP

  • IP本身是一个数字标识 (决定设备)
  • IP用来标志网络设备,实现设备间通信
  • IP的分类:
类型 说明
本机回环IP地址 127.0.0.1~127.255.255.254
196.168.0.0~192.168.255.255
局域网IP(私网IP 127.16.0.0~172.31.255.255
10.0.0.0~10.255.255.255
广域网IP 除上述之外

参考网址

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

标签:HTTP,请求,nodejs,--,IP,响应,html,http
From: https://blog.51cto.com/Itstars/9629315

相关文章

  • 解决VS Code中使用WSL开发Ruby程序每次打开控制台都需要输入/bin/bash --login的问题
    项目的开发环境是在VSCode上连接WSL开发,使用的语言是Ruby,每次打开控制台都需要先输入/bin/bash--login才能继续输入其他命令,为此,找遍了全网的资料,最终找到了解决的办法,特此记录一下,步骤如下:1.在终端输入vim~/.bashrc回车打开文件2.复制下面的代码粘贴至文件最后[[-s"$HOME/.......
  • 软件测试学习笔记丨App端测试—adb命令启动页面
    一、包和Activity(活动页)的概念package包:是Android应用的唯一标志Activity活动页:Android应用页面,一个页面就是一个Activity二、获取当前的页面名方法一:先启动应用执行adb命令:adbshell"dumpsyswindow|grepmCurrentFocus"三、获取启动页面的activity先执行adb命令:win:a......
  • 软件测试学习笔记丨App端测试——adb命令介绍
    一、adb简介AndroidDebugBridge(Android调试桥)简称adbAndroidsdk中提供的用于管理模拟器或真机状态的工具命令行工具二、adb操作手机设备打开应用adbshellamstart-ncom.tencent.wework/.launch.LaunchSplashActivity传输文件点击,输入,滑动等硬件操作返回,回到首页性能指......
  • 2023机器人年度集锦:创新潮涌不断,火热新品回顾!
    原创|文BFT机器人近年来,随着科技的不断进步和市场需求的日益增长,机器人行业一直处于飞速发展的轨道,在短时间内取得了显著的成果。到了2023年,这一行业迎来了一股创新潮涌,企业们纷纷加速研发,推出了一系列令人瞩目的新产品。这不仅标志着我国机器人行业的崛起,也预示着未来市场竞争......
  • 固定表结构与可自定义表结构
    整个平台的表结构分为两种:固定的和可自定义的。固定表结构适合于比较固定的信息对象,例如在平台的客户关系管理模块中,尽管各个行业有所差异,但是大同小异,可以固化表结构,使用实体来映射表。对象的编辑界面也是固定的,比较简单。 可自定义的表结构使用于灵活的数据对象,例如平台的人力资......
  • 单点登录怎么做?SSO实现原理和优势总结
    前言大家好,我是chowley,我最近在总结之前的项目,其中登陆模块我用了目前主流的SSO,今天就来总结一下,我对单点登录的理解,也欢迎大家讨论和指点。单点登录在当今互联网应用中,用户经常需要同时访问多个相关但相互独立的系统或应用程序。为了简化用户的登录体验、提高安全性和降低管理......
  • spring boot 引入 log.info("[消息服务]初始化成功"); log 爆红
    首先在idea中下载lombok插件下载完就好了一个小辣椒logo的lombok其次导入日志库的问题:确保项目的依赖中包含正确的日志库。在SpringBoot项目中,常用的是SLF4J,您可以在pom.xml(如果是Maven项目)或build.gradle(如果是Gradle项目)中添加以下依赖:xml<!--Maven--><dependencie......
  • 资本新规下的市场风险建设方案
    ......
  • 解密 ARMS 持续剖析:如何用一个全新视角洞察应用的性能瓶颈?
    作者:饶子昊、杨龙应用复杂度提升,根因定位困难重重随着软件技术发展迭代,很多企业软件系统也逐步从单体应用向云原生微服务架构演进,一方面让应用实现高并发、易扩展、开发敏捷度高等效果,但另外一方面也让软件应用链路变得越来越长,依赖的各种外部技术越来越多,一些线上问题排查起来变得......
  • 陪护系统|陪护小程序提升长者护理服务质量的关键
    在如今逐渐老龄化的社会中,老年人对更好的护理服务需求不断增加。科技的进步使得陪护小程序系统源码成为提供优质服务的重要途径之一。本文将从运营角度探讨如何优化陪护小程序系统源码,提升长者护理服务的质量。 首先,我们需要对软件的设计和用户体验进行全面优化。陪护小程序系统源......