Ajax第一课(前提准备)
1.概念简介:
Ajax全称:Asynchronous JavaScript And AXM ,也就是异步的 js 和 XML.通过Ajax可以再浏览器中向服务器发送请求,不需要刷新就可以获取数据。
2.xml的简介
xml和html一样是可扩展班级语言。只是xml中没有预定义标签,全都是自定义的。而且xml是用来传输和存储数据,html是展示数据。
3.Ajax优点
1.不需要刷新就可以与服务端进行通信
2.允许根据用户事件(如:鼠标事件)来更新部分 页面内容
4.Ajax缺点
- 没有浏览历史,不能回退
- 存在跨域问题(同源)(跨域就是“我在这个服务向另一个服务请求,Ajax是不允许的,比如你是a.com的网页,你向b.com发送请求,默认是不允许的")
- SEO不友好(seo是搜索引擎优化,爬虫爬不到)
5.http协议 - http协议是超文本传输协议,里面规定了浏览器和万维网服务器之间互相通信的规则
- 规则通俗点就是约定。主要对象是:请求报文和响应报文
- 请求报文包括四部分:
请求行: post /URL路径 http协议的版本
请求头: Host: bai.com
Cookie: name=baidu
Content-type: application/x-www-form-urlencoded
User-Agent: Chrome 83
重点:请求头格式是:名字+冒号+空格+值,例如上面
空行:固定的,必须有
请求体:内容可有可无,如果是get,请求体是空的,如果是post的话,可以不为空
- 响应报文
请求行: http协议的版本 200(响应状态码) ok(响应状态字符串)
请求头: Conten-Type: text/html;charset=utf-8
Conten-length: 2048
Content-encoding: gzip
//这一块是响应体做一些描述:类型,长度,压缩方式
重点:请求头格式是:名字+冒号+空格+值,例如上面
空行:固定的,必须有
请求体:主要的返回结果,比如:
<html>
<head>
</head>
<body>
<h1>百度</h1>
</body>
</html>
6.Express框架
Ajax需要给服务端发请求,所以我们需要一个服务端
//基本使用
//1.引入express
const { request, response } = require('express')
const express = require('express')
//2.创建应用对象
const app = express()
//创建路由规则
// request是对请求报文的封装
// response是对响应报文的封装
app.get('/', (request, response) => {
//设置响应
response.send('Hello express')
})
//监听端口启动服务
app.listen(8000, () => {
console.log('服务已经启动,8000 端口监听中');
})