概念
HTTP(hypertext transport protocol)协议也叫超文本传输协议,这个协议详细规定了浏览器和万维网服务器之间互相通信的规则。HTTPS更安全;无状态,cookie解决了无状态的问题
请求过程
客户端发送给服务器的称为“请求报文”,服务器发送给客户端的称为“响应报文”。
请求报文:
请求行:method/url
请求头:Host / Cookie / Accept / User-Agent=浏览器信息
Content-Type =application/json或者application/x-www-form-urlencoded或者multipart/form-data
请求体:(post才有,get没有)
json:{"name":"zhangsan","pwd":123 }/
urlencoded:name=zhangsan&pwd=123/
form-data:文件上传
响应报文:
响应状态行:status / statusText
响应头:Set-Cookie / Content-Type=application/json;charset=utf-8
响应体:js/img/css/json/html文本
http状态码的分类
1xx : 服务器已经收到了本次请求
2xx : 请求成功
3xx : 服务器还需要其他的资源;即重定向,配合响应头中的Location,浏览器自动处理
4xx :一般指请求的参数或者地址有错误,即客户端错误
5xx :服务器内部错误
200 :成功
301 :永久重定向,被请求的旧资源永久移除了(不可以访问了)
302 :临时重定向,被请求的旧资源还在(仍然可以访问)
304 :请求资源重定向到缓存中(命中了协商缓存)
403:没有权限
404 :资源未找到,一般是客户端请求了不存在的资源。
500 :服务器内部产生了错误。
504:网关超时
请求方式
同一个url根据请求方式决定CRUD,称为rest api(npm i json-server -g)
get请求:从服务端读取数据。url地址栏发送请求;点击a标签发送请求;Form表单没有填写(method: post)时发送的请求。
params参数得到对象:/posts/1
query参数得到数组:/posts?id=1
post请求:向服务端添加新数据。Form表单method: post时发送的请求。
put:更新服务端数据。
delete:删除服务端数据。
区别:GET使用URL或Cookie传参,而POST将数据放在BODY中