HTTP快速入门

2018-10-22  本文已影响0人  goozyshi

一.HTTP

客户端:通过发送请求获取服务器资源的 Web 浏览器等.

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

URL:Uniform12Resource Locator,统一资源定位符

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

TCP/IP

1.分层

2.传输

3. 协议

4.URI和URL

URI:统一资源标识符,表示由某个协议方案(http、ftp、file等)表示的资源的定位标识符

URL:统一资源定位符

二.HTTP协议

用于客户端和服务器端之间的通信

客户端:请求访问文本或图像等资源的一端

服务器端:提供资源响应的一端

客户端通过HTTP协议发起请求报文(请求方法+请求URI+协议版本+可选的首部字段+内容实体)
,服务器端返回响应报文(协议版本+状态码+原因短句+首部字段+空行+实体主体)。

HTTP是无状态协议,不保存之前一切请求或响应报文的信息,为了保存状态,引入了cookie

HTTP方法

使用Cookie进行状态管理

Cookie 会根据响应报文内的Set-Cookie的首部字段信息,通知客户端保存 Cookie。

服务器端发现客户端发送过来的 Cookie 后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。


cookie-none.png cookie-yes.png

三.HTTP报文内的HTTP信息

四.HTTP状态码

当客户端向服务器端发送请求时,描述返回的请求结果


status-code.png

1.成功状态码(2XX)

2.重定向状态码(3XX)

3. 客户端错误(4XX)

4.服务器错误(5XX)

五.Web服务器

1.通信数据转发程序

优点:利用缓存技术减少网络带宽的流量,组织内部针对特定网站的访问控制,以获取访问日志为主要目的

2.资源缓存

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

六.HTTP首部

首部字段可传递额外信息,给浏览器和服务器提供报文主体大小、所使用的语言、认证信息等内容。

HTTP 首部字段重复,不同浏览器优先处理不同次序出现的首部字段。

字段结构:首部字段名: 字段值

6.1通用首部字段

请求报文和响应报文双方都会使用的首部

1.Cache-Control

2.Connection

3.Date(创建 HTTP 报文的日期和时间)

4.Transfer-Encoding:规定传输报文主体时采用的编码方式

5.Upgrade:检测 HTTP 协议及其他协议是否可使用更高的版本进行通信,参数值可用来指定不同的通信协议。

upgrade.png

6. via:追踪客户端与服务器之间(代理服务器)的请求和响应报文的传输路径

6.2请求首部字段

客户端往服务器端,补充请求的附加信息、客户端信息、对响应内容相关的优先级等内容。

1.类型及优先级(Accept)

2.Authorization:告知服务器,客户端的认证信息(证书值)

3.From:告知服务器使用客户端用户的电子邮件地址址

4.Host:若相同的 IP 下部署运行多个域名,需要使用首部字段 Host 来明确指出请求的主机名

host.png

5.条件请求(If-xx)

If-Range:告知服务器若指定的 If-Range 字段值(ETag 值或者时间)和请求资源的 ETag 值或时间一致时,则作为范围请求处理。反之,则返回全体资源。

6.Max-Forwards

max-forword.png

7.User-Agent:用于传达浏览器的种类

6.2响应首部字段

1.Accept-Ranges:bytes | none:告知客户端服务器是否可处理范围请求

2.Age:告知客户端,源服务器在多久前创建了响应(单位:s)

3.ETag:资源被缓存时,就会被分配唯一性标识,当资源更新时,ETag 值也需要更新。

4.Location:引导客户端至某个与请求 URI 位置不同的资源。(配合重定向)

5.Proxy-Authenticate:把由代理服务器所要求的认证信息发送给客户端

6.Retry-After:告知客户端应该在多久之后再次发送请求(配合503 Service Unavailible)

6.3实体首部字段

1.Allow:通知客户端能够支持 Request-URI 指定资源的所有HTTP方法

2.Content-Encoding:告知客户端服务器对实体的主体部分选用的内容编码方式(不丢失实体信息的前提)

3. Content-Language:告知客户端实体主体使用的自然语言(中文、英文)

4.Content-Length:表明了实体主体部分的大小(单位:字节)。

对实体主体进行内容编码传输时,不能再使用 Content-Length首部字段

5.Content-Location:表示的是报文主体返回资源对应的 URI

6.Content-Range:告知客户端作为响应返回的实体的哪个部分符合范围请求

7.Expires:将资源失效的日期告知客户端

8.Cookie

HTTPS

1.HTTP的缺点

2.HTTTPS

HTTP+ 加密 + 认证 + 完整性保护=HTTPS

HTTPS 并非应用层的新协议。只是 HTTP 通信接口部分用SSL(Secure Socket Layer,安全套接层)和 TLS(Transport Layer Security,安全层传输协议)协议代替而已。

七.用户认证

7.1认证信息

7.2认证方式

  1. BASIC 认证(基本认证)
  1. DIGEST 认证(摘要认证)
  1. SSL 客户端认证(证书+密码双认证)
  1. FormBase 认证(基于表单认证)
    form.png

7.3 WebSocket协议

Web 浏览器与 Web 服务器之间全双工通信标准

不论服务器还是客户端,任意一方都可直接向对方发送报文

在HTTP协议基础上进行握手


websocket.png

八.常见web攻击技术

对 Web 应用的攻击模式有主动攻击被动攻击

主动攻击

通过直接访问Web传入攻击代码,直接针对服务器上的资源进行攻击从而访问资源。

针对 Web 应用使用的数据库,通过运行非法的 SQL而产生的攻击

被动攻击

利用圈套策略执行攻击代码的攻击模式,不直接对web访问进行攻击

上一篇 下一篇

猜你喜欢

热点阅读