HTTP/HTTPS

1.URL

<协议>://<主机>:<端口>/<路径>

2.HTTP特点:

HTTP协议本身是无连接的,使用面向连接的tTCP作为运输层协议

HTTP协议是无状态的,同一个用户第二次访问相同资源服务器并不能记录用户信息

TCP三次握手完成前两次后,就会把HTTP请求报文作为第三次握手的数据发送给服务器

2.HTTP报文结构

(1)请求报文

请求行:方法+url+http版本号+换行符

首部行:首部字段:值

空白行

实体主体

(2)响应报文

状态行:http版本+状态码+状态码解释短语+换行符

首部行:首部字段:值

空白行

实体主体

3. HTTP方法

OPTION:请求一些选项的信息

GET:请求读取URL所标志的信息

HEAD:请求读取URL所标志的信息的首部

POST:给服务器添加信息

PUT:在指明的URL下存储一个文档

DELETE:删除URL所标志的资源

TRACE:用来进行回环测试

CONNECT:用于代理服务器

4.HTTP请求报文首部字段

Host:www.baidu.com (指明主机的域名)

Connection:close/keep-alive  (指明是长连接还是短连接)

User-Agent:Mozilla(表明用户代理使用的浏览器是火狐)

Accept-Language:cn(表明用户希望得到中文文档)

5.HTTP状态码

1xx:表示通知信息,如收到了或正在处理

2xx:表示成功,如接受或知道了

3xx:表示重定向,如要完成请求还必须采取进一步的行动

4xx:表示客户的差错,如请求中有错误的语法或不能完成

5xx:表示服务器的差错,如服务器失效无法完成请求

6.Http1.0和1.1区别

1.缓存处理不同
2.新增了状态码,比如409(Conflict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删除。
3.Host头处理:1.0认为每个每台服务器只有一个ip,后来出现了虚拟主机,http1.1在首部行加入了host属性
4.长连接:http1.1在首部行加入了Connection: keep-alive

 

7.Http2.0和Http1.x区别

1.HTTP1.x的解析是基于文本,Http2.0基于二进制格式
2.连接共享:每个连接可以有多个request,每个request有一个id,接收方根据id处理不同的request
3.Http报文压缩,通讯双方各自cache一份header fields表,既避免了重复header的传输,又减小了需要传输的大小。
4.服务端推送:客户端没有发起请求,服务器也可以推送信息到客户端

8.什么是HTTPS

Https=http+加密+认证+完整性保护
https是身披ssl外壳的http,通常http直接和tcp通信,使用https时,http先和ssl通信,再由ssl和tcp通信
HTTPS使用443作为默认端口

9.HTTP的缺点

(1)通信使用明文,不加密,内容会被窃听

http底层是tcp协议,tcp可能被窃听,即使http对报文加密,仍然会被截获,只不过是不知道报文内容

(2)无法验证通信双方身份

http协议不存在验证通信方的步骤,任何人都可以发起请求,无意义的请求也会照单全收,会dos攻击
  
(3)无法保证报文的完整性
http无法证明通信报文的完整性,请求或者响应的内容被篡改也无法获悉

 

10.HTTPS的优点

(1)通信加密:http和ssl(Secure socket layer)组合使用,构成https

(2)内容加密:客户端对http报文加密后再发送请求,客户端和服务器必须同时具有加密和解密机制

(3) ssl可以查明通信方的证书,证书由第三方机构颁发,很难伪造

 

11.加密方式

(1)共享密钥加密(对称密钥加密):
加密密钥和解密密钥使用相同的密码体制
通信双方需要用同一种密钥解密,发送信息的一方需要将密钥随着加密的信息一同发送给接收方,信息和密钥可能被截获

例如:A和B是进行通信的双方
假设A手握一把密钥 key1,那么A需要克隆一把相同的密钥 key1'
在第一次通信中,A将报文连同 key1'一起发送给B
此后:A和B则分别使用 key1、key1' 分别对接收/发送的报文进行解密/加密

(2)公开密钥加密(非对称密钥加密):
发送信息的一方使用接收方的公有密钥加密,发送文件,接收方使用私有秘钥解密
公有密钥可以公开,私有秘钥不公开

例如:B希望自己发送给A的报文被加密
假设A手握公钥 key2 和私钥 key2'
首先,A将报文主体连同 key2 一起发送给B
此后,B向A发送的报文都将使用 key2 加密
而被 key2 上锁的报文 只有A手上的 key2' 才能解密


(3)https采用混合加密的方法:
在交换密钥的环节使用非对称加密,之后的通信则使用对称加密
例如:A手握一对非对称密钥(公钥key3、私钥key3'),B手握一对对称密钥(key4、key4')

阶段1:交换密钥-使用非对称加密
1、A将公钥 key3 发送给B
2、B将下一阶段加密/解密用的 key4' 放在报文中,并使用公钥 key3 对报文进行加密
3、A使用私钥 key3' 解密报文,得到 key4'

阶段2:数据通信-使用对称加密
A和B分别使用 key4' 和 key4对接收/发送的报文进行解密/加密

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值