如何构造http请求
对于Get请求:
这里我们重点强调 form 标签构造的 http请求
<form action="https://www.leetcode.com" method="get">
<input type="text" name="studentName">
<input type="submit" value="提交">
form>
将构造好的请求提交给 leetcode 服务器(leetcode 不会处理该请求, 因此也不会对该请求作出响应)
然后用 fiddler 抓包查看详细过程.
明显可以看到和 GET 请求的报文有所区别:
但 form 标签构造请求有其局限性 , 就是只能构造 GET 和 POST 请求 , 因此我们引入Ajax.
ajax 全称 Asynchronous Javascript And XML , 是一种 JavaScript 给服务器发送 http 请求的方式
特点是可以不需要 刷新页面/页面跳转 就能进行数据传输
JavaScript 中可以通过 ajax 的方式构造 http 请求
Asynchronous 异步是指 , 一行代码执行"发送请求" 操作之后 , 不必等待服务器响应回来 , 就可以立即先往下执行 , 当服务响应回来之后 , 在由浏览器通知到我们代码中.
jquery 的下载网址:
https://www.bootcdn.cn/jquery/
引入 jquery 较为方便的办法就是直接 复制链接 到script 标签中.
<!-- 引入 jquery -->
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
<script>
jquery 中 $ 是一个特殊的全局变量.
jquert 中的 api 都是以 $ 方法法形式引出 , 其中只有一个参数 , 是一个 js 对象({} 表示的键值对)
$.ajax();
<!-- 引入 jquery -->
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
<script>
$.ajax({
type: 'get',
url: 'http://www.leetcode.com?studentName=zhangsan',
// 此处 success 就声明了一个回调函数 , 就会在服务器响应返回到浏览器的时候触发该回调
// 正数此处的 回调 体现了 "异步"
success: function(data){
console.log("当服务器返回的响应到达浏览器之后 , 浏览器会触发该回调 , 通知到我们的代码中");
}
});
</script>
console.log("浏览器立即往下执行后续代码");
Tips: 上述代码构造的请求 , 只能看到请求 , 无法获取到正确的响应 , 因为 leetcode 服务器并没有处理我们的请求 , 因此在控制台会发生报错.(相当于在火锅店吃炒菜)
通过上述学习 , 可以发现无论是 form 还是 ajax 构造请求的代码书写起来都不是很便捷 , 如果用代码来构造大量的 http 请求 , 显然是很麻烦的. 因此我们可以使用 第三方免费工具 postman 来向服务器发送测试请求.
除了手动构造之外 , postman 还有一个非常牛逼的功能 , 可以生成构造请求的代码 , 方便我们在程序中集成.