网络七层协议OSI
- 物理层
- 定义物理设备标准进行比特流传输
- 数据链路层
- 数据检查纠错,保证正确传输帧数据
- 数据检查纠错,保证正确传输帧数据
- 网络层
- 数据的路由寻址,可以是IP,ICMP等
- 传输层
- 提供端对端的接口,TCP,UDP
- 会话层
- 会话的建立与结束,数据传输同步
- 表示层
- 数据格式的转化
- 应用层
- 与用户应用程序的接口,比如实现Http,ftp,smtp,dns,telnet等
HTTP
- 简介
- 超文本传输协议,基于TCP/IP通信协议来传递数据
- 特点
- 简单快速:客户端向服务器请求服务时,只需传达请求方法和路径,请求方法常用GET,HEAD,POST。由于HTTP协议简单,程序规模小,因而通信速度很快
- 灵活:Http允许传递任意类型的数据对象,传输类型由Content-Type加以标记
- 无连接:无连接的含义是指每次连接只处理一个请求,处理完后自动断开,为节省传输时间和资源
- 无状态:http协议是无状态协议,指的是请求不会依赖于前一个请求的状态参数等,所以如果要用到前一个请求的参数,需要再次携带前一次的参数进行请求
- http状态码
- 1xx:指示信息–请求已接收,继续处理
- 2xx:成功–表示请求已被成功接收、理解、接收
- 3xx:重定向–请求需要更进一步的操作,通常是转发到别的地址或页面
- 4xx:客户端错误–请求有语法错误或请求无法实现
- 5xx:服务器端错误–服务器未能实现合法请求
Web安全
- SQL注入攻击
- 避免直接拼接SQL,尽量使用成熟框架,比如laravel,xml中尽量不要使用$开头参数注入
- CSRF攻击
- 概述:跨站点请求伪造,CSRF攻击常常还伴随着XSS攻击,本质是伪造用户请求达到非本用户访问该用户才有权限的接口
- 解决方案:强制用户和服务器交互,填写验证码;使用POST请求,更加不容易伪造,不易暴露
- XSS攻击
- 概述:脚本攻击,比如用户提交的评论内容里包含了一段脚本,提交后,打开该页面会自动运行该脚本,这就是没处理好XSS问题
- 解决方案:在服务请求的时候加一层过滤即可,网上方案很多,只要意识到这点很容易解决,像Spring Security也提供了快捷的解决方案
- 跨域
- 前端使用JSONP,只能是POST请求
- 后端接口添加header请求头设置Access-Control-Allow-Origin
- nginx域名转发