1. HTTP协议
1.1 HTTP报文是什么
浏览器向服务器发送请求时,请求本身就是信息,叫请求报文
服务器向浏览器发送响应时传输的信息,叫相应报文
1.2 HTTP报文格式
请求头:起始行+首部
请求体
GET请求,没有请求体,数据通过请求头携带
POST请求.有请求体,数据通过请求体携带
响应头:起始行+首部
响应体
1.3 HTTP方法
常用的HTTP方法:
浏览器发送请求时采用的方法.和响应无关
GET,POST,PUT,DELETE
用来定义对于资源采取什么样的操作,有各自的语义
HTTP方法的语义:
GET获取数据,获取资源(文件)
POST创建数据,注册
PUT更新数据.修改密码
DELETE删除数据,删除一条评论
RESTful接口设计:
一种接口设计风格,充分利用http方法的语义
通过用户id获取个人信息,使用get方法
www.imooc.com/api/http/ge…
注册新用户,使用post方法
www.imooc.com/api/http/ad…
修改一个用户,使用post方法
www.imooc.com/api/http/mo…
删除一个用户,用psot方法
www.imooc.com/api/http/de…
1.4 GET和POST方法的对比
语义:GET获取数据,POST创建数据
get通过地址在请求头中携带数据能携带的数量和长度有关系,一般最多就是几K
POST既可以通过地址在请求头携带数据,也可以通过数据体携带数据,能携带的数据理论是无限的
GET可以缓存.POST不会被缓存
get和post都不安全
发送密码或其他敏感信息时不要使用get,主要是避免直接被他人窥屏或通过历史记录找到你的密码
1.5 HTTP状态码
HTTP状态码是什么
定义服务器对请求的处理结果,是服务器返回的
HTTP状态码语义
100-199消息:代表请求已被接受,需要继续处理
200-299成功
300-399重定向
400-499请求错误
500-599服务器错误
2. Cookie
2.1 Cookie是什么
cookie全程HTP Cookie,简称cookie是浏览器存储数据的一种方式,因为存储 在用户本地,而不是存储在服务器上,是本地存储,一般会自动随着浏览器每次请求发送到服务器端 Cookie有什么用 利用Cookie跟踪统计用户访问该网站的习惯,比如什么时间访问,访问了哪些页面,在每个页面的停留时间等
2.2 Cookie的基本用法
写入Cookie
//不能一起设置,只能一个一个设置
docunmen.cookei = `uesername=zs`
docunmen.cookei = `age=18`
//读取cookie
console.log(docunmen.cookie)
//读取的是一个由名值对构成的字符串,每个名值之间由";" (一个分号和一个空格)隔开
Cookie的属性
cookie的名称和值最重要的两个属性,创建cookie必须填写,其它属性可以使用默认值
cookie的名称或值如果包含非英文,则写入时需要使用encondeURLcompronent()编码,读取时使用decondeURLCompone()解码
document.cookie =`username=${encondeURLcompronent('张三')}`
document.cookie =`${encodeURLComporent('用户名')=$(encodeURLComporent('张三')}`
一般名称使用英文字母,不要用中文,值可以用中文,但是要编码
失效(到期)时间
对于失效的Cookie,会被浏览器清除,如果没有设置失效(到期)时间,这样的Cookie称为会话Cookie,它存在内存中.当会话结束,也就是浏览器关闭时,Cookie消失
//想长时间存在,设置expires或max-age
//值为date类型
documnet.cookie = `uesername=alex;expires=${new Date('2100-1-01 00:00:00')}`
//max-age值为数字,表示当前时间+多少秒后过期
documnet.cookie=`username=alex;max-age=5`
//如果max-age的值是0或复数,则Cookie会被删除
Domain域
//使用js只能读写当前域或父域的Cookie,无法读写其他域的Cookie
documnet.cookie=`username=alex;domian=www.imooc.com`
//www.imooc.com m.imooc.com当前域
//父域:.imooc.com
当Name,Domain,Path这三个字段相同的时候,才是同一个Cookie
HttpOnlu