HTTP 术语

HTTP

HTTP:HyperText Transfer Protocol,超文本传输协议。

发展历史

  • 1989.3,诞生
  • 1990.11,CERN,第一台Web服务器和Web浏览器
  • 1992.9,日本第一个网站主页上线
  • 1993.1,NCSA研发Mosaic问世
  • 1994.12,网景发布Netscape Navigator 1.0
  • 1995,微软发布IE1.0和2.0
  • 1996.5,HTPP/1.0,RFC1945标准公布
  • 1997.1,HTPP/1.1,RFC2068标准公布
  • 2000,网景衰落,微软胜利
  • 2004,Mozilla发布Firefox

TCP/IP

TCP/IP是互联网相关的各类协议族的总称。

我们通常使用的网络是在TCP/IP协议族的基础上运作的,其中HTTP属于它内部的一个子集。

TCP/IP 协议族

计算机与网络设备互相通信,双方必须基于相同的方法。

  • 如何探测到通信目标
  • 由那一边先发起通信
  • 使用哪种语言进行通信
  • 怎样结束通信等等

不同的硬件、操作相同之间的通信,所有的这一切都需要一种规则——协议(Protocol)

TCI/IP 分层

主要分为四层:

  • 应用层
    决定了向用户提供应用服务通信的活动。比如FTP、HTTP、DNS。

  • 传输层
    提供处于网络连接种的两台计算机之间的数据传输。主要分为两种协议:TCP(Transmission Control Protocal)和UDP(User Data Protocal)。

  • 网络层
    又称网络互联层。用来处理在网络上流动的数据包(网络传输的最小单位)。该层规定了通过怎样的路径到达对方计算机,并把数据包传送给对方。

  • 数据链路层
    又称数据链路层,或网络接口层。用来处理连接网络的硬件部分,包括控制操作系统、硬件的设备驱动、网卡等物理可见部分。

TCP/IP 通信传输

利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信。

发送端从应用层往下走,接收端则从下往上走。

客户端发送一个查看Web页面的HTTP请求的过程:

  • 发送端在层与层之间传输数据时,每经过一层时,必定会被打上一个该层所属的首部信息。
  • 接收端在层与层之间传输数据时,每经过一层时,都会把对应的首部信息去掉。

IP 协议


代理

代理是一种有转发功能的应用程序,它扮演了位于服务器和客户端“中间人”的角色,接收由客户端发送的请求并转发给服务器,同时也接收服务器返回的响应转发给客户端。

缓存代理(Caching Proxy)

缓存是指代理服务器或客户端本地磁盘内保存的资源副本。利用缓存可减少对源服务器的访问,可节省通信流量和通信时间。

  • 服务器缓存
  • 客户端缓存

代理转发响应时,缓存代理会预先将资源的副本(缓存)保存在代理服务器上。

当代理服务器再次接收到相同资源的请求时,就可以不从资源服务器那里获取资源,而是将之前缓存的资源作为响应返回。


透明代理(Transparent Proxy)

转发请求或响应时,不对报文做任何加工的代理类型被称为透明代理。反之,对报文内容进行加工的代理被称为非透明代理。


反向代理

代理是代替客户端去访问服务器,反向代理是代替服务器接受客户端的请求。

反向代理只是被代替的对象的改变,从客户端改为服务器。如果把代替客户端的代理称为正向代理,那么代替服务器的代理,就是我们称作的反向代理。


网关

网关是转其他服务器通信数据的服务器,接收从客户端发送来的请求时,它就像自己拥有资源的源服务器一样对请求进行处理。有时客户端可能都不会察觉,自己的

代理与网关的区别:

  • 代理服务器和网关都会把网络内部的数据的数据发送到因特网上。如果把网关比作一扇通向因特网的门,代理服务器就是一堵墙,能够避免暴露网络内部的一些重要信息。代理服务器会过滤一些网络连接,只允许那些可以访问的通过。而网关却不做任何的过滤。
  • 如果代理服务器不做任何信息过滤,那么它就和网关一样,传递从电脑到因特网的请求。
  • 网关能使通信线路上的服务器提供非HTTP协议服务。利用网关能提高通信的安全性,因为可以在客户端与网关之间的通信线路上加密以确保连接安全。比如网关可以连接数据库,使用SQL查询语句;在Web购物网站上进行信用卡结算时,网关可以和信用卡结算系统联动。

隧道

隧道可按要求简历一条与其他服务器的通信线路,比如使用SSL加密通信。

隧道的目的是确保客户端与服务器进行安全的通信。

隧道本身不会去解析HTTP请求。即请求保持原样中转给服务器。

HTTP Header

请求报文组成

响应报文组成

认证方式

HTTP/1.1

  • BASIC 基本认证
  • DIGEST 摘要认证
  • SSL 客户端认证
  • FormBase 基于表单认证

对于Windows来说,还有Keberos认证,NTLM认证。

BASIC

BASIC认证虽然采用Base64编码方式,但这不是加密处理,在非加密通信的线路上进行BASIC认证的过程中,如果被人窃听,被盗的可能性极高。

DIGEST

SSL

FormBase

Web

Servlet

Servlet是一种能在服务器上创建动态内容的程序。用Java语言实现的一个接口,属于JavaEE(Java Enterprice Edition)的一部分。

RSS

RSS和Atom都是发布新闻或博客日志等更新信息文档的格式的总称,两者都用到了XML。

JSON

JSON(JavaScript Object Notation)是一种以JavaScript的对象表示法为基础的轻量级数据标记语言,有7种数据类型。

针对Web应用服务器的攻击技术

攻击模式

  • 主动攻击(Active Attack):攻击者通过直接访问web应用,把攻击代码传入的攻击模式。该模式是直接针对服务器上的资源进行攻击,因此前提条件是攻击者能够访问资源。
    代表性方式:SQL注入攻击、OS命令注入攻击

  • 被动攻击(Passive Attack):利用圈套策略执行攻击代码模式。在该模式种,攻击者不直接对目标web应用发起攻击。
    代表性方式:XSS跨站攻击、CSRF(XSRF)跨站点请求伪造