#信息安全#--HTTP通信

一、web介绍

(是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供图形化易于访问的直观页面。)

1.HTTP知识

①HTTP(超文本传输协议),是一种实现客户端和服务器之间通信的响应协议,它是用作客户端和服务器之间的请求。

请求:Request --->req

响应:Reponse --->rsp

②:

URI:统一资源标识符

URL:统一资源定位符

2.通信流程

  • 输入访问www.baidu.com
  • DNS服务器将域名解析成IP地址:www.baidu.com==>1.15.136.212对应的IP地址
  • 浏览器请求web服务器获取web资源
  • web服务器将资源返回给客户端
  • 客户端浏览器渲染
  • 最后呈现在用户面前

二、DNS域名解析

DNS最基本也是最重要的作用就是进行域名和IP地址之间对应关系的记录和查询

1.DNS记录

A记录

返回域名对应的IPv4地址

NS记录

返回该域名由哪台域名服务器解析

PTR记录

从IP地址到域名的记录

MX记录

记录邮件域名对应的IP地址

ARP协议 : IP地址和物理地址转换。

2.DNS服务器类型

根服务器

  • 根服务器是DNS的核心,负责互联网顶级域名的解析,用于维护域的权威信息,并将DNS查询引导到相应的域名服务器。
  • 根服务器在域名树中代表最顶级的"."域,一般省略。
  • 它并不提供直接的DNS域名解析服务,而是负责将对应的顶级域名DNS服务器的地址返回给查询的客户端。

顶级DNS服务器

  • 顶级域名( top level domain ,简写为 TLD),负责的顶级域名,同样的,顶级域名服务器也不提供直接的DNS域名解析服务,而是负责将对应的权威域名服务器返回给查询的客户端。

权威服务器

  • 权威DNS服务器 ,这时候权威DNS服务器会返回对应域名的IP地址,客户端拿到了IP地址就可以进行访问了。

3.DNS解析工作流程

  • 首先客户端发送请求需要访问 baidu.com ,然后第一步是访问本地的DNS缓存;
  • 本地的DNS缓存会读取系统下对应的hosts文件,如果这里面定义了 baidu.com 这个域名对应的IP地址,则直接访问这个IP,就没有后面什么事儿了;
  • 如果本地的缓存文件没有记录,那么客户端就会发送请求到本地DNS服务器 ,一般来说会是默认提供的DNS服务器,当然我们也可以手动指定成第三方的DNS服务器。本地DNS服务器查询服务器内的记录,如果有则直接返回记录给客户端;
  • 如果本地DNS服务器没有记录,那么就会访问根域名服务器 ,询问baidu.com对应的顶级域名服务器的地址;
  • 根域名服务器根据请求判断出是访问 .com 域名的请求,就会给客户端返回 .com 的顶级域名服务器 地址;
  • 本地DNS服务器获取到地址之后,发送请求给 .com 的顶级域名服务器 ,询问 baidu.com 对应的权威域名服务器的地址; www.baidu.com
  • .com的 顶级域名服务器给客户端返回了 baidu.com 的 权威域名 服务器 的地址;
  • 本地DNS服务器 获取到地址之后,发送请求给 baidu.com 的 权 威域名服务器 ,询问 baidu.com 的IP地址;
  • baidu.com 的权威域名服务器给本地DNS服务器返回了baidu.com 的IP地址;
  • 本地DNS服务器给客户端返回了 baidu.com 的IP地址,客户端和这个IP建立连接,开始传输数据,该次DNS请求结束。

三、HTTP请求类型

1.HTTP常见的四种请求方法

GET、POST、PUT、HEAD

  • get 取,是查询数据
  • post 提交,常用于提交数据更新数据

2.GET与POST区别

URL可见性

  • Get传参方式是通过地址栏URL传递,可以直接看到GET传递的参数,GET把请求的参数数据在URL后通过连接,通过进行参数分割。
  • Post传参方式URL不可见,post将从参数存放在HTTP数据包体内。

传输数据大小

  • Get传递数据是通过URL进行传递,对传递的数据长度是受到URL大小的限制,URL最大长度是2048个字符。
  • Post没有长度限制。

后退页面

  • Get后退不会有影响。
  • Post后退会重新进行提交。

编码方式

  • Get请求只有URL编码。
  • Post支持多种编码方式。

3.HTTP请求响应过程

  • 域名解析
  • 发起TCP三次握手
  • 建立TCP连接后发起HTTP请求
  • 服务器端响应http请求,浏览器得到html代码
  • 浏览器接收到响应后,解析html代码,并请求html代码中的资源
  • 浏览器对页面进行渲染呈现给用户

4.HTTP请求报文

(组成:请求行、请求头部、空行、请求数据)

①HTTP请求报文格式

②常见的请求头部

Host 指定请求的服务器的域名和端口号

Referer 先前网页的地址,你当前页面的上一个网页地址

User-Agent 内容包含发出请求的用户信息

Content-Length 请求的内容长度

Content-Type 请求的与实体对应的MIME信息

X-forward-for(XFF) 记录客户端得IP地址

Cookie 用户身份信息 你登录成功一个网站之后 ,是不是可以任意操作

Accept 指定客户端能够接收的内容类型

Accept-Charset 浏览器可以接受的字符编码集

Accept-Encoding 指定浏览器可以支持的web服务器返回内容压缩编码类型

Accept-Language 浏览器可接受的语言

Date 请求发送的日期和时间

③常见的响应头部

Allow 对某网络资源的有效的请求行为,不允许则返回405

Content-Encoding web服务器支持的返回内容压缩编码类型

Content-Language 响应体的语言

Content-Length 响应体的长度

Content-Type 返回内容的MIME类型

Date 原始服务器消息发出的时间

Location 用来重定向接收方到非请求URL的位置来完成请求或标识新的资源

Refresh 应用于重定向或一个新的资源被创造,在5秒之后重定向(由网景提出,被大部分浏览器支持)

Server web服务器软件名称

Set-Cookie 设置 Http Cookie Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1

Accept-Ranges 表明服务器是否支持指定范围请求及那种类型的分段请求

Access-Control-Allow-Origin 配置有权限访问资源的域

5.HTTP响应码

①1xx(临时响应)

状态码

中文描述

100

继续

101

切换协议

②2xx(成功)

状态码

中文描述

200

请求成功

201

已创建

202

已经接受请求

203

非授权信息

204

无内容

205

重置内容

206

部分内容

③3xx(重定义)

状态码

中文描述

300

多种选择

301

永久移动

302

临时移动

303

查看其它地址

304

未修改

305

使用代理

306

已经被废弃的HTTP状态码

307

临时重定义

④4xx(请求错误)

状态码

中文描述

400

客户端请求的语法错误,服务器无法理解

401

请求要求用户的身份认证

402

保留,将来使用

403

服务器理解请求客户端的请求,但是拒绝执行此请求

404

服务器无法根据客户端的请求找到资源(网页)

405

客户端请求中的方法被禁止

406

服务端无法根据客户端请求的内容特性为完成请求

407

请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权

408

服务器等待客户端发送的请求的时间过长,超时

409

服务器完成客户端的PUT请求时可能返回此代码,服务器处理请求时发生了冲突

410

客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置

411

服务器无法处理客户端发送的不带Content-Length的请求信息

412

客户端请求信息的先决条件错误

413

由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息

414

请求的URI过长(URI通常为网址),服务器无法处理

415

服务器无法处理请求附带的媒体格式

416

客户端请求的范围无效

417

服务器无法满足Expect的请求头信息

⑤5xx(服务器错误)

状态码

中文名称

500

服务器内部错误,无法完成请求

501

服务器不支持请求的功能,无法完成请求

502

作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应

503

由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中

504

充当网关或代理的服务器,未及时从远端服务器获取请求

505

服务器不支持请求的HTTP协议的版本,无法完成处理

四、HTTPS

HTTP+SSL/TLS, 即 HTTP 下加入 SSL 层,HTTPS的安全基础是SSL。

五、Cookie&Ssesion

Cookie:

HTTP Cookie 是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到 服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器或用户,如保持用户的登录状态。

作用

会话状态管理(如用户登录状态、购物车、游戏分数或其它需 要记录的信息)

个性化设置(如用户自定义设置、主题等)

浏览器行为跟踪(如跟踪分析用户行为等)

Ssesion:

Session 代表着服务器和客户端一次会话的过程。Session 对象存储 着用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而 是在整个用户会话中一直存在下去。当客户端关闭会话,或者 Session 超时失效时会话结束。

Cookie与Session区别

作用范围不同,Cookie 保存在客户端(浏览器),Session 保存在服务器端。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值