AJAX学习(24.11.1-24.11.14)(包含HTTP协议)
AJAX学习(24.11.1-11.14)
来源: 传智 | 高校学习平台-首页 传智播课:黑马程序员
1.服务器和客户端
1.服务器:存放和对外提供资源的电脑。
2.客户端(用户):获取和消费资源的电脑。(一般通过浏览器)
2.URL(统一资源定位符)
URL也叫网址,完整的URL包含协议、域名、端口、文件路径、查询参数、锚点。
3.客户端和服务器的通信过程
用Ctrl+Shift+I 打开chrome浏览器的开发者工具,Network-Doc查看
4.请求数据的方式
XMLHttpRequest对象(xhr)
通过 XMLHttpRequest 可以在不刷新页面的情况下请求特定 URL,获取数据。这允许网页在不影响用户操作的情况下,更新页面的局部内容。
用于单页面应用。(SPA)
常用的方式是:get和post
get:向服务器要资源,如获取数据,js文件,css文件等
post:往服务器发送资源,如提交表单信息等。
5.AJAX概念
1.异步的Javascript和XML
2.在网页中利用XMLHttpRequest对象和服务器进行数据交互。
6.接口的概念
使用AJAX进行数据请求时,被请求的URL地址就是数据接口(简称接口),每个接口必须要有请求方式。
7.接口请求过程
post同理。(将获取数据改为提交数据)
8.了解同源策略和跨域
1.同源:两个页面URL的协议、域名、端口号相同。(没有端口号时,端口号默认为80)
9.了解防抖和节流
csdn:什么是防抖和节流?有什么区别?_lua 防抖节流-CSDN博客
防抖(Debounce)和节流(Throttle)是前端性能优化中常用的两种技术,它们主要用于控制某些函数的执行频率,以提高页面的响应速度和性能。
(1)防抖
概念图:
核心代码:
<button>点我</button>
<script>
let btn=document.querySelector('button');
let timer=null;
btn.onclick=function(){
clearTimeout(timer);
timer=setTimeout(()=>{
console.log('点我');
},1000)
}
</script>
(2)节流
概念图:
核心代码:
<button>
点我
</button>
<script>
let btn=document.querySelector('button');
let flag=true;
btn.onclick=function(){
if(flag){
flag=false;
console.log('节流');
}
setTimeout(()=>{
flag=true;
},5000)
}
</script>
10.HTTP协议
mdn的HTTP概述:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Overview
(1)HTTP简介
1.通信
概念:信息的传递和交换;
三要素: =》主体(服务器和客户端)
=》内容
=》方式
协议:互联网的通信协议是网页内容的传输协议。(网页内容又叫超文本)
HTTP协议:超文本传输协议(HyperText Transfer Protocol)
2.what is http:
3.how
(2)HTTP请求消息
1.概念:客户端发起的请求叫HTTP请求,客户端发送到服务器的消息叫做HTTP请求消息。
(HTTP请求消息又叫HTTP请求报文)
2.组成部分:
=》请求行(start line):
=》请求方法
=》URL
=》HTTP协议版本
=》请求头部:用于描述客户端的基本信息,把客户端的相关信息告诉服务器。
=》组成:多行键/值对
=》例如:
=》User-Agent说明当前浏览器类型,操作系统、设备类型等
=》Accept描述客户端接受什么类型的返回内容,是一个优先级列表
例如,Accept: text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8
表 示客户端优先接受HTML内容,其次是XML,然后是其他所有类型的内容。
=》Content-Type描述发送到服务器的数据格式
常见请求头csdn:
HTTP请求头及其作用_请求头的作用-CSDN博客
mdn详情:
https://developer.mozilla.org/zh-CN/docs/Glossary/Request_header
=》空行:分隔请求头部和请求体
=》请求体:用于发送从客户端到服务器的数据。
=》注意:按照HTTP规范,GET请求通常不包含请求体(但是官方没有明令禁止),因为GET请求主要用于请求数据,而不是提交数据。GET请求的参数通常通过URL的查询字符串(query string)传递。
相关文章:get请求能携带请求体吗?_get 请求体-CSDN博客
=》包含请求体的请求方式:POST(最常见)、PUT、DELETE、PATCH
=》请求体中的数据类型:由Content-Type请求头指定
(3)HTTP响应消息
1.概念:服务器响应给客户端的消息内容,也叫响应报文。
2.组成部分:
=》状态行:
=》协议版本,通常为 HTTP/1.1
=》状态码
=》状态码的文本描述
=》响应头部:描述服务器的基本信息
=》组成:多行键/值对
=》示例:
mdn:https://developer.mozilla.org/zh-CN/docs/Glossary/Response_header
=》空行:分隔响应头部和响应体
=》响应体:服务器响应给客户端的资源内容(在Network面板下的Resposne查看)
(4)HTTP请求方法
mdn参考:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Methods
=》增:POST
=》删:DELETE
=》改:PUT
=》查:GET
(5)HTTP响应状态码
mdn参考:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status
重定向
:指示浏览器或客户端从一个URL(统一资源定位符)跳转到另一个URL
常用状态码: