HTTP和HTTPS

HTTP

一、HTTP概述

超文本传输协议,HTTP是一种按照URL指示,将超文本文档从一台主机(web服务器)传输到另一台主机(浏览器)的应用层协议,以实现超链接的功能

二、HTTP的工作原理

在用户点击URL为http://www.qq.com/index.html的链接后,浏览器(客户端)和web服务器执行以下动作:

①浏览器分析超链接中的URL

②浏览器向DNS服务器请求解析www.qq.com的ip地址

③DNS服务器将解析出的ip地址返回浏览器

④浏览器根据得到的ip地址找到对应的web服务器,并建立TCP三次握手

⑤建立连接后,浏览器向web服务器发送http请求(GET /index.html)

⑥服务器给出响应,将文档index.html发送给浏览器,用html代码中的资源渲染页面

⑦TCP四次挥手释放连接

三、DNS解析过程

假设你要查询www.baidu.com的ip地址

1、首先会查找浏览器的缓存,看看是否能找到www.baidu.com对应的ip地址,找到就直接返回;否则进行下一步

2、客户端将请求递归发送给本地DNS服务器,如果查找到也直接返回,否则继续进行下一步

3、本地DNS服务器进行迭代查询,首先向根域名服务器发送请求,根域名服务器返回负责.com的顶级域名服务器的ip地址的列表

4、本地DNS服务器再向其中一个负责.com的顶级域名服务器发送一个请求,返回负责.baidu的权威域名服务器的ip地址列表

5、本地域名服务器再向其中一个权威域名服务器(次顶级域名服务器)发送一个请求,返回www.baidu.com所对应的ip地址

四、HTTP请求方法

①请求报文的方法

方法

描述

GET

对服务器资源获取的简单请求

POST

用于发送包含用户提交数据的请求

PUT

请求存储一个web页面

②GET请求方式与POST的区别

请求方式

GET

POST

数据包

产生一个TCP数据包

可能产生两个TCP数据包

编码方式

只能进行url编码

支持多种编码方式

请求参数

把参数包含在URL中,用&连接起来

通过POST包的data字段传输参数

请求缓存

会被主动Cache

不会缓存,除非手动设置

收藏为书签

支持收藏为书签

不支持

历史记录

参数会被完整保留在浏览历史记录里

不会保留

参数数据类型

ASCll的字符

没有限制数据类型

五、HTTP响应状态码

状态码

含义

例子

1xx

通知信息

100=服务器正在处理客户请求

2xx

成功

200=请求成功(OK)

3xx

重定向

301=永久性重定向;302=暂时性重定向

4xx

客户端错误

403=服务器禁止访问,权限有关;404=服务器无法找到资源

5xx

服务器端错误

500=服务器内部错误;503=以后再试

六、HTTP头部信息

1、User-Agent

浏览器标识(操作系统标识、浏览器语言、版本信息)

2、Host

服务器的DNS名称,包含URL

3、Server

响应头包含处理请求的原始服务器的软件信息

4、Referer

浏览器向web服务器表明自己是从哪个网页/URL/点击获得当前请求ip的网址

5、Location

web服务器告知浏览器,试图访问的对象已经被移到别的位置了,到该头部指定的位置去取

七、HTTP的版本及连接超时问题

1、HTTP/1.0

默认是短连接,每次请求都要建立一个TCP连接,可以强制开启长连接

2、HTTP/1.1

默认长连接,即TCP连接默认不关闭,可以被多个请求复用。在同一个TCP连接里,客户端可以同时发送多个请求

3、HTTP/2.0

二进制协议。完全多路复用,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序一一对应

4、连接超时问题

①在交互过程中,HTTP中的响应体的Connection字段的keep-alive起着至关重要的作用

②对于HTTP的短连接和长连接实际上是TCP的长短连接

③keep-alive字段的重要参数

⑴tcp_keep_time:keepalive的空闲时长,默认两个小时

⑵tcp_keep_probes:在tcp_keep_time之后,没有接收到对方的确认,继续发送保活探测包的次数,默认为10次

⑶tcp_keep_intvl:keepalive探测包的发送间隔,默认为75秒

八、Session和Cookie

1、Session是服务器和客户端的一次会话过程

2、Cookie是保存客户端的一小块文本串的数据

3、Session和Cookie的产生过程

 

用户第一次请求服务器时,服务器根据用户提交的信息,创建对应的Session ID,并在请求返回时将Session ID返回给浏览器。浏览器在收到Session ID后,会将此信息存入Cookie中,同时Cookie记录此Session ID是属于哪个域名。当用户第二次访问服务器时,请求会自动判断此域名下是否存在Cookie信息,如果存在,则自动将Cookie信息也发送给服务器,服务器会从Cookie中获取Session ID,再根据Session ID查找对应的Session信息。

4、Session和Cookie的区别

Session

Cookie

存放位置

服务器

客户端

存储数据类型

任意数据类型

ASCLL

安全性

较高

较低

存储空间大小

有效期

较短,超时或客户端关闭都会失效

可设置长时间保存

HTTPS

一、HTTPS概述

1、安全超文本传输协议,HTTPS是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性,即HTTPS=HTTP+SSL/TLS

2、SSL,安全套接字层协议,位于传输层和应用层之间的一种协议层,是网络通信提供安全及数据完整性的一种安全协议。主要通过三个协议实现:SSL握手协议、SSL修改密文协议、SSL报警协议

3、TLS,安全传输层协议,它是SSL3.0的后续版本

二、HTTPS的加密过程

①客户端向服务器端发起HTTPS请求,连接到服务器端的443端口

②服务器端保留自己的私钥、公钥放在数字证书里

③服务器端返回SSL证书信息(证书内容有公钥、证书颁发机构、失效日期)和服务器端随机数

④客户端验证证书的合法性,如果证书合法,则生成一个随机的会话主密钥(对称),并用服务器的公钥加密

⑤客户端将加密后的密钥发送到服务器

⑥服务器端收到客户端发送的密钥后,用自己的私钥进行解密,得到客户端的会话主密钥

⑦服务器端将数据用会话主密钥加密后传输到客户端

⑧客户端用自己的密钥进行对称解密,得到服务器返回的数据

三、数字签名和数字证书

1、数字证书是指在互联网通讯中标志通讯各方身份信息的一个数字认证,它的出现是为了防止公钥被篡改

2、公钥和个人等信息,经过Hash摘要算法加密,形成消息摘要;将消息摘要拿到拥有公信力的认证中心CA,用它的私钥对消息摘要加密,形成数字签名。公钥和个人信息、证书颁发机构和失效日期、数字签名共同构成数字证书

四、对称加密和非对称加密

1、对称加密是指加密和解密使用同一密钥。常见的对称加密算法有DES、AES

2、非对称加密是指加密和解密使用不同的密钥(即公钥和私钥)。公钥和私钥是成对存在的,如果用公钥对数据进行加密,只有对应的私钥才能解开。常见的非对称加密算法有RSA

3、对称加密和非对称加密的区别

对称加密

非对称加密

密钥

加密解密使用同一密钥

加密解密使用不同密钥

安全性

数字签名

不可使用数字签名

可以使用数字签名

运算速度

五、HTTP和HTTPS的比较

HTTP

HTTPS

安全性

不安全

安全

默认端口

80

443

资源消耗

较少

较多

是否需要证书

不需要

需要

报文是否加密

不加密

加密

URL存放位置

GET请求的host字段

SSL协议中Client_hello报文的server_name字段

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值