【分布式基础】--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里,cookie保存到客户端
  • 下次请求客户端带着cookie信息。

如何实现cookie机制:

  1. 客户端首次请求到服务端时候,服务端会创建一个session,生成回话的sessionid=“001”
  2. 将session信息(包括sessionid=“001”)写入到cookie返回给客户端
  3. 客户端cookie内会存入cookie.jsessionid=“001”
  4. 客户端以后的每次请求都会携带cookie中的jessionid=“001”的信息。

http的缺陷

  1. 通信是明文的:

http是明文的,通过抓包协议可以获取到所有请求和相应信息,所以不安全,所以引入了HTTPS协议。

  1. 不验证通信双方的身份
  2. 无法验证报文的完整性,报文可能被篡改

HTTPS:

HTTPS=HTTP+ssl
ssl是加密协议,最近升级为tls,其应用更为广泛

HTTPS的通信原理

主要考虑如何实现安全传输

【分布式基础】--HTTP及HTTPS协议

web攻击手段

1.被动攻击
攻击者设置陷阱,等用户自己入坑触发陷阱,由此窃取到用户信息。

  • 跨站脚本攻击 (在浏览器中运行一些非法的脚本,写陷阱脚本)
  • 请求伪造
  • sql注入攻击

2.主动攻击
攻击者通过直接访问 Web 应用,把攻击代码传入的攻击模式。由于该模式是直接针对服务器上的资源进行攻击,因此攻击者需要能够访问到那些资源。

  • SQL 注入攻击
  • OS 命令注入攻击