服务器相关的基础概念:
客户端
广义的理解: pc电脑,笔记本,pad,电子手表,手环...
狭义的理解:在前端开发中,客户端特指“浏览器
”。
作用:将互联网世界
中的Web 资源
加载、并呈现到浏览器窗口
中供用户使用。
服务器
概念:服务器是提供服务
的设备(本质上就是一台电脑主机)。
作用:在上网过程中,服务器专门负责存放
资源和对外提供
服务。
前端开发中客户端一般指
浏览器
服务器的作用是存放程序员的代码,为
客户端提供网络资源
的
客户端与服务器通信的过程
客户端与服务器之间的通信过程,分为请求(request)
- 响应(response)
两个步骤。其中:
请求的概念
:客户端通过网络去找服务器要资源
的过程,叫做“请求
”
响应的概念
:服务器把资源通过网络发送给客户端
的过程,叫做“响应
”
URL地址
URL 地址用来表示服务器上每个资源的确切访问路径。
一个标准的 URL 地址主要由以下 4 个部分构成:
①客户端与服务器之间的
通信过程
是基于 请求 和 响应 的。②URL 地址的
主要组成部分
,从前到后分别是 协议、 主机号、 端口号 和 路径。③在 http 协议中,URL 地址中的 :
80 端口号
可以被省略
服务器对外提供的资源
文字,image图片,audio音频,video视频,数据(数据是网页的灵魂)
在网页中如何请求服务器的数据:需要用到的技术Ajax
Ajax 的基础用法
Ajax的概念
Ajax 是浏览器中的技术:用来实现客户端网页
请求服务器的数据
。
它的英文全称是 Asynchronous Javascript And XML,简称 Ajax。
网页中 Ajax 的应用场景无处不在,有数据的地方就有 Ajax
!
使用Ajax请求数据的5种方式
客户端浏览器在请求服务器上的数据时,根据操作性质
的不同,可以分为以下 5 种常见的操作:
post:
提交数据
get :
获取数据
delete:
删除数据
put:
更新数据(全部更新)
patch:
更新数据(部分更新)
Ajax的基础用法
axios的概念
axios专注于数据请求
的库
axios的基础语法
axios({
method:'请求的类型',
url:'请求的URL地址'
data: { 'post请求参数'},
params: { 'get请求参数'}
}).then((result)=>{
// .then用来指定请求成功之后的回调函数
// 形参中的result是请求成功之后的结果
})
axios发起get请求
axios发起get请求
<script>
// axios测试get请求
axios({
// method:请求方式 大小写都行
method:'get',
// url:请求地址
url:'http://www.liulongbin.top:3009/api/getbooks'
}).then((result)=>{
console.log(result)
})
</script>
axios发起get请求携带参数
如果想指定查询的条件,可以通过 params 选项
来指定查询的参数
axios发起get请求携带参数的本质
在使用 Ajax 发起 GET 请求时,data 中的参数,会以 ?键=值
的形式拼接到 URL 地址的末尾
。
注意:?
后面的都是查询参数
,查询参数的键和值
之间使用 = 进行分隔
axios发起get请求携带多个参数
如果要携带多个参数,只需要在 params 对象
中指定多个查询参数项
即可
最终,在 URL 地址的末尾,多个查询参数之间使用 &
符号进行分隔
URI编码,解码
在 URL 地址中不允许出现中文、空格等特殊字符
,因此浏览器会自动
对 URL 地址内的中文进行转换处理
浏览器内置了encodeURI()和 decodeURI()两个方法,用来实现 URL 的编码和解码处理:
<script>
// 浏览器会自动的处理中文
axios({
// method:请求方式 大小写都行
method:'get',
// url:请求地址
url:'http://www.liulongbin.top:3009/api/getbooks?',
// params设置参数
params:{
id:2,
bookname:'红楼梦'
}
}).then((result)=>{
console.log(result)
})
// encodeURI()编码
console.log(encodeURI('红')) // %E7%BA%A2
// decodeURI()解码
console.log(decodeURI('%E7%BA%A2')) // 红
</script>
result是axios套壳的结果
服务器端响应给 axios 的原始数据
,被 axios 在外面“套了一层壳
”
在函数的形参中使用解构赋值
使用解构赋值
,可以轻松地获取到
axios 请求回来的真实数据
<script>
axios({
// method:请求方式 get大小写都行
method:'get',
// url:请求地址
url:'http://www.liulongbin.top:3009/api/getbooks',
// params设置参数
params:{
id:1,
bookname:'西游记'
}
// 从.then(fn) 回调函数的形参中,解构赋值出 data 属性,重命名为 res
}).then(({data:res})=>{
console.log(res);
})
</script>
axios发起post请求
axios发起post请求
使用 axios 发起post请求时,只需要将method 属性
的值设置为 'POST
' 即可,携带参数时需设置data属性
<script>
// axios测试get请求
axios({
// method:请求方式 大小写都行
method: 'post',
// url:请求地址
url: 'http://www.liulongbin.top:3009/api/addbook',
// 注意:post请求传参要data属性
data: {
bookname: '阿巴阿巴',
author: '阿巴阿巴',
publisher: '武汉出版社'
}
}).then(({data: result}) => {
//成功回调
console.log(result)
})
</script>
post提交数据的方式
通过 Chrome 浏览器的 Network
网络请求面板,可以发现 POST 请求提交的数据,并没有拼接到 URL 地址的末尾
原因:各个浏览器对 URL 的长度
有限制
GET和POST提交数据的区别
GET 请求只能在 URL 中携带少量
的数据
POST 请求适合用来提交大量
的数据
结论:POST 为了能够提交大量的数据,所以没有把数据拼接到 URL 的末尾
;而是放到了独立的“请求体
”中。
http协议的请求报文 & 响应报文
什么是请求报文和响应报文
客户端与服务器通信的过程是基于请求
与响应
的。其中:
请求报文
规定了客户端以什么格式
把数据发送
给服务器
响应报文
规定了服务器以什么格式
把数据响应
给客户端
请求报文-格式
请求报文
由请求行
(request line)、请求头部
( header )、空行
和 请求体
4 个部分组成
注意:
在浏览器中,GET 请求
比较特殊,它只有
请求头,没有请求体
。
在浏览器中,POST、PUT、PATCH、DELETE 请求既有请求头,又有请求体
响应报文-格式
响应报文由状态行
、响应头部
、空行
和 响应体
4 个部分组成。
http响应状态码
概念:http 响应状态码(Status Code)由三位数字
组成,用来标识响应成功与否
的状态。
作用:客户端浏览器根据响应状态码,即可判断出这次 http 请求是成功
还是失败
了。
常见的http响应状态码
http响应
状态码 & 业务
状态码
正确区分响应状态码
和业务状态码
的不同,是保证使用 Ajax 不迷茫的必要前提。从如下 3 个方面进行区分:
①所处的位置
在响应头
的状态行
中所包含的状态码,叫做“响应状态码
”
在响应体
的数据中
所包含的状态码,叫做“业务状态码
”
②表示的结果
响应状态码只能表示这次请求
的成功与否(成功地失败了)
业务状态码用来表示这次业务处理
的成功与否
③通用性
响应状态码是由 http 协议规定
的,具有通用性
。每个不同的状态码都有其标准的含义,不能乱用。
业务状态码是后端程序员自定义
的,不具有通用性
。
接口相关的基础概念及测试工具
接口的概念
接口也叫API: application programming interface
在程序中有两种表现形式: 函数
与 请求地址URL
使用 Ajax 请求数据时,被请求的 URL 地址
,就叫做数据接口
同时,每个接口必须有对应的请求方式
。例如:
http://www.liulongbin.top:3009/api/getbooks 获取图书列表的接口(GET 请求)
http://www.liulongbin.top:3009/api/addbook 添加图书的接口(POST 请求)
接口文档的概念
接口文档
就是接口的使用说明书
,它是我们调用接口的依据。
接口文档的格式
接口测试工具
接口测试工具能让我们在不写任何代码
的情况下,对接口进行调用
和测试
,从而检查接口能否被正常访问。
最流行的接口测试工具是 Postman
,官方下载地址:Download Postman | Get Started for Free