时间:4.9
题目:前端常用的HTTP知识
主讲人:李成银
1.HTTP协议在浏览器网络的位置
HTTP1.0,HTTP2.0,HTTP3.0
HTTP是应用层协议
服务端与客户端之间请求与响应
HTTP传输的细节交给了底层的传输协议,如:TCP/UDP
HTTP请求/响应报文:
<methods><request-URL><veision>
<headers>
<entity-body>
<version><status><respon-phrase>
<headers>
<entity-body>
HTTP请求类型:
GET POST PUT DELECT OPTIONS HEAD PATCH
HTTP常用状态码:
101:切换协议,如:将HTTP协议转换为socket协议
200:成功
206:返回部分内容
301:永久重定向
302:临时重定向
304:资源未修改,不返回实体内容,客户端从缓存中取
400:错误请求
403:拒绝执行
404:资源找不到
413:请求实体过大,如:服务器限制了上传的文件大小
500:服务器内部错误
502:作为网关或代理服务器时,上有服务器异常
503:作为网关或代理服务器时,上有服务器处理超时
2.Header分类
1)通用
Date
Connection:close
2)请求
User-Agent
Accept
3)响应
Server:Nginx
Last-Modified
4)实体
Content-Type:text/html;charset=utf-8
Content-Length:100
5)扩展(自定义)
X-powered-By
X-Cache:hit
3.Cookie
客户端
GET/HTTP/1.1
Cookie
服务端也可以设置cookie
HTTP/1.1 200 OK
Set-Cookie
当有一个请求时,可以通过判断服务端设置的cookie值判断是否一样
响应头里面可以有多个Set-Cookie
(cookie值如果过大,就会产生一些问题)
4.Cookie的安全策略
与以下因素相关
path
domain(hostonly*)
expires(max-age)
secure
httponly
samesite
XSS漏洞盗取cookie,设置httponly,可以避免cookie被获取
CSRF漏洞,设置token/samesite
5.Session
服务器端对应为Session,基于cookie存放用户信息(cookie特定的值作为key)
cookie的有效期为session,cookie的时间不是一个具体的时间,而是随浏览器的进程退出而消失
6.Content-Type
标志当前资源返回类型
Content-Type:text/html (text/css、application/javascript);charset=utf-8
Content-Type:image/svg+xml (jpeg)
标志提交数据的类型
Content-Type:application/x-www-form-urlencoded; charset=utf-8