【分布式基础】--HTTP及HTTPS协议
HTTP
URI/URL
(1)URL
统一资源定位符
eg: https://tfjybj.com:8090/java/j2ee/index.html?name=Hepburn#head
指定协议类型(http/https/ftp)
host
端口
path 资源路径
query-string 查询字符串
’ # head 锚点 定位到页面的某个位置
(2)URI
统一资源标识符
服务端资源的文件名
(3)区别? URI/URL
资源是什么/资源位置
方法:
- get
- post
- put
- delete
------- 下面是http1.1之后增加的
- option 客户端请求服务端,要服务端要告诉客户端当前URL支持的方法的类型(get/post等)
- head 查询请求 拿到头部信息 比如获取index.html的有效性,最近更新时间
http协议特点:
- 无状态(多次请求是无关系的 )–解决:引入cookie机制,保存状态信息。
cookie机制:
如何实现cookie机制:
- 客户端首次请求到服务端时候,服务端会创建一个session,生成回话的sessionid=“001”
- 将session信息(包括sessionid=“001”)写入到cookie返回给客户端
- 客户端cookie内会存入cookie.jsessionid=“001”
- 客户端以后的每次请求都会携带cookie中的jessionid=“001”的信息。
http的缺陷
- 通信是明文的:
http是明文的,通过抓包协议可以获取到所有请求和相应信息,所以不安全,所以引入了HTTPS协议。
- 不验证通信双方的身份
- 无法验证报文的完整性,报文可能被篡改
HTTPS:
HTTPS=HTTP+ssl
ssl是加密协议,最近升级为tls,其应用更为广泛
HTTPS的通信原理
主要考虑如何实现安全传输
web攻击手段
1.被动攻击
攻击者设置陷阱,等用户自己入坑触发陷阱,由此窃取到用户信息。
- 跨站脚本攻击 (在浏览器中运行一些非法的脚本,写陷阱脚本)
- 请求伪造
- sql注入攻击
2.主动攻击
攻击者通过直接访问 Web 应用,把攻击代码传入的攻击模式。由于该模式是直接针对服务器上的资源进行攻击,因此攻击者需要能够访问到那些资源。
- SQL 注入攻击
- OS 命令注入攻击