什么是协议
就是协定,一式双份或一式多份,双方都遵从的一种规范
你来问---我来答 你怎么问----我怎么答
互联网能够在全世界快速传播,协议就是非常重要的一个原因
计算机的常见协议
FTP HTTP SMTP POP3 PPP TCP/IP
HTT协议工作流程
简称三次握手
常见的web服务器
nginx 请求数量可以非常大
apache 请求数量较少
tomcat
lls
HTTP的请求与响应
请求:
1. 请求行
2. 请求头信息
3. 请求主体信息
4. 请求头信息与主体信息之间之间要有一个空行
GET请求:
POST请求:
请求行:
1.请求方法:
GET POST HEAD DELETE PUT TRACE OPTIONS
2.请求路径:请求路径是url的一部分比如http://127.0.0.1:8080/server
3.所用的协议:
HTTP协议 常用的版本是1.1
请求头信息:
1.post请求头要注明请求主体的长度
content-length:length
2.服务器要想能够解析到post数据还需要请求头包含数据类型
content-type:application/x-www-form-urlencoded
格式为key:value
请求主题:
使用&拼接在一起的key=value键值对
请求格式
请求行(方法 路径 协议)
请求头信息(格式为key=value)
空行
请求主体(可选)(发送的内容)
例子:
POST /index.php http/1.1
host:localhost
content-type:application/x-www-form-urlencoded
content-length:25
name=zhangsan
响应格式
响应行(协议 状态码 状态文字)
响应头信息(格式为key=value)
空行
主体信息(也可能没有)
例子:
HTTP/1.1 200 OK
content-type:text/html
content-length:25
hello
HTTP状态码
AJAX GET请求
客户端的请求
1.创建AJAX
let xhr = new XMLHttpRequest;
2.发送方法,这里是GET方法
xhr.open('GET','http://127.0.0.1:8080/server')
3.发送数据:
xhr.send();
4.监听状态
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
if(xhr.status >=200 && xhr.status<=300){
d.innerHTML = xhr.response;
}
}
}
服务端的响应
应用nodejs来实现
1.npm安装express框架
2.引入express
let express = require('express');
3.创建应用对象
let app = express();
4.创建路由规则
app.get('/server',(request,response)=>{
//设置响应头 设置允许跨域
response.setHeader('Access-Control-Allow-origin','*');
//响应体
response.send('马程浩')
});
5.监听端口启动服务
app.listen(8080,()=>{
console.log('在8080端口监听')
})
这样就可以实现前后端的请求交互了
AJAX POST请求
客户端请求
注意:POST请求需要设置请求头信息以及请求体信息请求头可以自定义但是在nodejs中必须设置
服务器响应
注意:
1.app接受请求在post请求中本来是app.post但是客户端发送的请求中包含其他方式的请求,所以使用app.all进行配置。
2.response.setHeader('Access-Control-Allow-Headers','*');这段代码也是用来配置可以响应其他请求的服务