协议(网络协议)

article/2024/4/13 14:59:55

HTTP/HTTPS 协议

HTTP 实际上是个缩写,英文全称是:Hyper Text Transfer Protocol (超文本传输协议)。

最常用的网页(也叫web页)就是一种超文本的具体表现形式。HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer)协议是安全的,地址是经过了身份认证的,传输的数据经过了加密。

url

地址栏输入的地址,叫作 URL,也就是我们常说的网址.

  • 协议类型与域名之间以 ://(固定写法)分隔。
  • 路径(英文常称为 path)以单斜杠 / 开头,中间每层的分隔符也是单斜杠 / 。
    • 路径相当于一层一层的文件夹。但要注意与 windows 的文件夹分隔符 \ 不要混淆了。
  • 参数:
    • 路径与参数之间用 ? 分隔。看到问号 ? 就知道后面的内容就是参数了。
    • 多个参数之间用 & 分隔。
    • 参数用“参数名=参数值”(key=value)的格式表示。

https://www.douban.com:443/gallery/topic/116390/?from=hot_topic_note&sort=new

域名后的 :443 表示网站的端口号。HTTP 协议默认的端口号是 80 ,HTTPS 协议默认的端口号是 443 。默认的端口号在 URL 中是可以省略的,其它的端口号就必须要写明了。

路径的两种情况

1.相对路径

gallery/topic/116390/?from=hot_topic_note&sort=new

不是以斜杠 / 开头的路径,表示相对路径,

2.默认路径

没有输入路径时,表示请求网站的默认页面.

API+GET请求

API

API 全称 Application Programming Interface,应用程序接口,API 一般是指一些预先定义的函数,目的是可以为开发人员快速访问某一程序,而无需了解和访问源码,或理解它内部工作机制的细节.

API 可以快速调用某个程序

API 只是提供纯粹的数据(7゜c),并不包含与展示相关的字体颜色、字体大小、位置等信息。

fetch调用API

API,本质上就是一个 URL。开头也是 http(或https),只是返回的内容有明显的区别,没有大量多余的字符。

API 返回的内容统称为数据,可以使用fetch方法来获取这部分数据。

fetch('https://www.fastmock.site/mock/b73a1b9229212a9a3749e046b1e70285/f4/f4-11-1-1'
).then(function (response) {return response.json();}).then(function (myJson) {console.log(myJson);});

fetch返回了一个promise对象

promise

Promise 是异步编程的一种解决方案,(

异步编程是一种编程模式,它允许程序在执行某些操作时不必等待其完成,而是可以继续执行其他操作。这种编程模式通常用于处理需要等待I/O操作(如读取文件、网络请求等)的情况,以提高程序的性能和响应速度。

在异步编程中,程序会发起一个异步操作,然后继续执行后续的代码,等待异步操作完成后再执行相应的回调函数或处理结果。这样可以避免程序在等待操作完成时被阻塞,提高了程序的并发性和响应能力。

常见的异步编程方式包括使用回调函数、Promise对象、async/await等。异步编程在现代的Web开发中被广泛应用,特别是在处理大量的网络请求和数据处理时,可以有效提高程序的性能和用户体验。

Promise对象可以通过.then触发回调函数then中文意思下一步,也非常符合人的语义化习惯。

response.json()返回的也是一个 Promise 对象,所有后续可以继续使用.then触发后续回调。

 GET请求

类似于数据请求的接口,一般称作GET接口。而fetch在不指定类型时,默认是发起GET请求

GET参数请求

API 调用需要参数,我们只要把包含参数的完整的 URL 直接传入到方法中。

POST请求

提交数据至服务端进行增加、修改、删除等操作,都是 POST 操作。我们在网页上提交表单进行登录的场景就是典型的POST操作。

fetch - POST 操作

文档中搜索POST,需要添加参数method。

fetch('https://www.fastmock.site/mock/b73a1b9229212a9a3749e046b1e70285/f4/f4-11-4-1',{method: 'POST'}
).then(function(response) {return response.json();}).then(function(myJson) {console.log(myJson);});

由于未提供账号与密码我们所得到是

{"isSuccess": false
}

将密码与账号输入。 

// 把JSON数据序列化成字符串
const data = JSON.stringify({username: 'admin',password: '123456'
});fetch('https://www.fastmock.site/mock/b73a1b9229212a9a3749e046b1e70285/f4/f4-11-4-1',{method: 'POST',body: data,headers: {'content-type': 'application/json'}}
).then(function(response) {return response.json();}).then(function(myJson) {console.log(myJson);});

http://www.ngui.cc/article/show-1929949.html

相关文章

二叉树最小深度,最大深度,完全二叉树结点数

第六章 二叉树part03 今日内容: 104.二叉树的最大深度 559.n叉树的最大深度 111.二叉树的最小深度 222.完全二叉树的节点个数 详细布置 104.二叉树的最大深度 (优先掌握递归) 给定一个二叉树,找出其最大深度。 二叉树的深度…

蓝桥杯算法题汇总

一.线性表:链式 例题:旋转链表 二.栈: 例题:行星碰撞问题 三.队列 三.数组和矩阵 例题:

王腾飞出席整体系统智能节电设备在工矿企业中的应用

演讲嘉宾:王腾飞 中科兆和电力技术(山东)有限公司综合能源管理事业部--部长 演讲题目:整体系统智能节电设备在工矿企业中的应用 会议简介 “十四五”规划中提出,提高工业、能源领城智能化与信息化融合,明…

vscode+remote突然无法连接服务器以及ssh连接出问题时的排错方法

文章目录 设备描述状况描述解决方法当ssh连接出问题时的排错方法 设备描述 主机:win11,使用vscode的remote-ssh插件 服务器:阿里云的2C2GUbuntu 22.04 UFIE 状况描述 之前一直使用的是vscode的remote服务,都是能够正常连接服务…

java的jar打包docker镜像,启动加载

测试环境,打包镜像 1,把jar包复制/data/liu/mssda.jar, cd到这个目录下 2,创建Dockerfile文件,jdk17版本,内容如下 jdk8版本 FROM openjdk:8-jre-alpine WORKDIR /app COPY . /app CMD ["java", "-jar",…

输出梯形 C语言

解析:这个输出图形的题就是一个找规律加数学计算,我们发现每行比上一行多两个*,最后一行的*表达式为h(h-1)*2,即3*h-2,那么每一行就是一个先输出最后一行-当前行*个数个空格&#xf…

太阳能供电井盖-物联网智能井盖监测系统-旭华智能

在这个日新月异的科技时代,城市的每一个角落都在悄然发生变化。而在这场城市升级的浪潮中,智能井盖以其前瞻性的科技应用和卓越的安全性能,正悄然崭露头角,变身马路上的智能“眼睛”,守护城市安全。 传统的井盖监测系统…

基于springboot+vue的客户关系管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

day03-Vue-Element

一、Ajax 1 Ajax 介绍 1.1 Ajax 概述 概念:Asynchronous JavaScript And XML,异步 的 JavaScript 和 XML。 作用: 数据交换:通过 Ajax 可以给服务器发送请求,并获取服务器响应的数据。异步交互:可以在 不…

Qt Creator配置MSVC编译环境、调试环境

在windows上开发,一般使用Qt Creator自带mingw编译器,编译和调试都很方便,安装Qt时勾选后,自动配置完毕。 但是有时候我们需要使用MSVC的编译器,这个时候我们没法直接使用,需要配置环境才能使用&#xff0…