https网络

OSI模型

应用层(网络服务与最终用户的一个接口)、表示层(数据的表示,安全,压缩)、会话层(建立,管理,终止会话)、传输层(tcp udp定义传输的端口号,控流和差错校验)、网络层(ip 实现不同网络之间的路径选择)、数据链路层(差错校验)、物理层(建立、维护、断开物理连接)   http端口最多216次方个

HTTP为什么使用Tcp实现

http协议只定义了应用层的东西,下层的可靠性要传输层来保证,但是没有说一定要用tcp,只要是可以保证可靠性传输层协议都可以承载http,比如有基于sctp的http实现

Http协议

http协议是基于TCP协议的应用层传输协议,就是客户端和服务端进行数据传输的一种规则。客户端与服务器的角色不是固定的,一端充当客户端,也可能在某次请求中充当服务器。这取决与请求的发起端。HTTP协议属于应用层,建立在传输层协议TCP之上。客户端通过与服务器建立TCP连接,之后发送HTTP请求与接收HTTP响应都是通过访问Socket接口来调用TCP协议实现。

HTTP 是一种无状态 (stateless) 协议, HTTP协议本身不会对发送过的请求和相应的通信状态进行持久化处理。这样做的目的是为了保持HTTP协议的简单性,从而能够快速处理大量的事务, 提高效率。它引入了cookie来记录管理状态

http请求

http请求由请求行,消息报头,请求正文三部分构成
请求行就是定义了本次请求的请求方式, 请求的地址, 以及所遵循的HTTP协议版本(GET /example.html HTTP/1.1 (CRLF))

http请求方法

`GET`: 请求获取Request-URI所标识的资源* 
`POST`: 在Request-URI所标识的资源后增加新的数据 
`HEAD`: 请求获取由Request-URI所标识的资源的响应消息报头
`PUT`: 请求服务器存储或修改一个资源,并用Request-URI作为其标识 
`DELETE`: 请求服务器删除Request-URI所标识的资源
`TRACE`: 请求服务器回送收到的请求信息,主要用于测试或诊断 
`CONNECT`: 保留将来使用* 
`OPTIONS`: 请求查询服务器的性能,或者查询与资源相关的选项和需求

http请求头

Accept(指定客户端能够接收的内容类型)	Accept—Charset(浏览器可以接受的字符编码集)	Accept-Language(浏览器可接收的语言)
Accept-Encoding(指定浏览器可以支持的web服务器返回内容压缩编码类型)	Accept-Ranges(可以请求网页实体的一个或多个子范围字段)
Authorization(HTTP授权的授权证书类型)	Cache-Control(指定请求和响应遵循的缓存机制)	Content-Type(请求的与实体对应的MIME信息)
Connection(表示是否需要持久连接,http1.1默认持久连接)	cookie(http请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器)
Content-Length(请求的内容长度)

http响应

响应由三部分组成,包括状态行,消息报头,响应正文

img

http响应行

由三部分组成,包括HTTP协议的版本,状态码,以及对状态码的文本描述(HTTP/1.1 200 OK (CRLF))

http响应状态码

常见状态代码、状态描述、说明: 200OK - 客户端请求成功 400Bad Request - 客户端请求有语法错误,不能被服务器所理解 401Unauthorized - 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 403Forbidden - 服务器收到请求,但是拒绝提供服务 404Not Found - 请求资源不存在,eg:输入了错误的URL 500Internal Server Error - 服务器发生不可预期的错误 * 503Server Unavailable - 服务器当前不能处理客户端的请求,一段时间后,可能恢复正常

http五大特点

1.支持客户/服务器模式 2.简单快速 3.灵活 4.无连接 5.无状态

http的不足

- 通信使用明文(不加密),内容可能会被窃听
- 不验证通信方的身份,因此有可能遭遇伪装
- 无法证明报文的完整性,所以有可能已遭篡改 

https加密过程

1、服务器将携带的公钥向数字证书机构申请证书。
2、数字证书机构用自己的私钥对公钥签名颁发证书,并返回给服务器。
3、服务器将申请携带公钥的证书分发给客服端。
4、客户端验证证书,证书机构通过验证,或者用户接受不受信任的证书(非权威机构颁发的证书)。获取到公钥。到这一步,在证书保证下服务器拥有私钥,客户端拥有公钥,可进行非对称性加密。
5、使用公钥加密报文发送给服务器,其中携带随机串。其中的随机串用户传输数据时进行对称加密
6、服务器使用私钥解密。获取报文信息及随机串。
7、解密后服务器发送握手消息给客户端。
8、客户端接受握手消息,握手结束,双方确定加密算法(使用随机串确定的对称性加密),开始传输。

https发送过程

1.浏览器给服务器发送公钥2.浏览器获得服务器的公钥(网站从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式发回给浏览器。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息)3.浏览器验证随机密码    用服务器的公钥加密通信的秘钥 把通信秘钥发送给服务器4.服务器用私钥解随机密码  然后用密码解密握手消息验证hsah也浏览器是否一致

https的不足

1.假面解密过程复杂,访问速度慢2.加密需要向证机构付费3.整个页面的请求都要使用https
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值