http特性

100-199 用于指定客户端应相应的某些动作。
200-299 用于表示请求成功。
300-399 重定向 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。
400-499 客户端错误 用于指出客户端的错误。400 1、语义有误,当前请求无法被服务器理解。401 当前请求需要用户验证 403 服务器已经理解请求,但是拒绝执行它。
500-599 服务端错误 用于支持服务器错误。 503 – 服务不可用

https工作原理:

  • 服务器生成服务器公钥和服务器私钥,向CA认证机构申请证书。
  • 浏览器向服务器发出请求网页,发送hello。
  • 客户端支持的SSL /TLS协议的版本号。
  • Cipher Suite(密钥算法套件)。
  • 服务器回应hello,并发送证书以服务器公钥。
  • 确认使用的加密通信协议版本,如果浏览器与服务器支持的版本不一致,服务器关闭加密通信。
  • 客户端检查证书是否是CA所颁发的。
  • 客户端随机生成客户端公钥,客户端私钥,以及利用服务器公钥创建的会话密钥A。
  • 客户端向服务器发送客户端公钥,和会话密钥A。
  • 服务器通过服务器私钥还原会话密钥A,利用客户端公钥创建会话密钥B。
  • 服务器将会话密钥B发送给客户端,客户端通过客户端私钥还原会话密钥B。
  • 之后客户端向服务器发送数据会带上会话密钥A,服务器向客户端发送数据会带上会话密钥B。

http 1.0

HTTP1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求(严重影响客户机和服务器的性能)。

http1.1

1、HTTP支持持久连接,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟

2、还允许客户端不用等待上一次请求结果返回,就可以发出下一次请求,但服务器必须按照接收到客户端请求的先后顺序依次返回结果

3、增加Host请求头字段。我们可以在一台web服务器上可以在同一个IP地址和端口号上使用不同的主机名来创建多个虚拟web站点

4、提供与身份认证、转态管理和Cache缓存等机制相关的请求头和响应头
5、断点续传

http2.0
1、多路复用。允许同时通过单一的HTTP/2连接发起多重的请求-响应消息。容易去实现多流并行而不用依赖建立多个TCP连接。http/2把HTTP协议通信的基本单位缩小为一个一个的帧,这些帧对应着逻辑流的消息,并行的在同一个TCP连接上双向的交换消息。
2、二进制分帧。HTTP/2在应用层和传输层之间增加了一个二进制分帧层。在不改动HTTP/1的语义、方法、状态码、URI以及首部字段的情况下,解决了HTTP1的性能限制,改进传输性能,实现低延迟和高吞吐量。
3、首部压缩。HTTP/2使用了专门问首部压缩而设计的HPACK算法
4、服务端推送。服务端推送是一种在客户端请求之前发送数据的机制。在HTTP/2中,服务器可以对客户端的一个请求发送多个响应。

长连接:http1.1支持的连接
连接->传输数据->保持连接->传输数据->…->关闭连接
短连接: 连接->传输数据->关闭连接

输入url
1、输入地址
2、DNS解析
3、TCP连接

  • 第一次握手:客户端将标志位SYN置为1,随机产生一个值为seq=J(J的取值范围为=1234567)的数据包到服务器,客户端进入SYN_SENT状态,等待服务端确认;
  • 第二次握手:服务端收到数据包后由标志位SYN=1知道客户端请求建立连接,服务端将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给客户端以确认连接请求,服务端进入SYN_RCVD状态。
  • 第三次握手:客户端收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给服务端,服务端检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,完成三次握手,随后客户端A与服务端B之间可以开始传输数据了。

三次握手的目的是“为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误。

4、发送http请求
5、返回http响应
6、浏览器解析渲染页面
7、断开连接

  • 第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
  • 第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。
  • 第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
  • 第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值