计算机网络——HTTP协议

1.HTTP协议不同版本的主要区别?

HTTP/0.9:

  • HTTP协议的原型;
  • 只支持GET方法;
  • 不支持多媒体内容
  • 只有HTML对象;

HTTP/1.0:

  • 广泛使用
  • 增加多种方法
  • 支持多媒体对象
  • 无连接,无状态

HTTP/1.1:

  • 长连接
  • 管道化
  • 缓存处理
  • 断点传输

HTTP/2.0:

  • 性能进一步提升
  • 二进制分帧
  • 多路复用
  • 头部压缩
  • 服务端推送

2.长连接解决了什么问题?

短连接:http/1.0,连接->传输数据->关闭连接。每进行一次HTTP操作就建立一次连接,任务结束就中断。

长连接:http/1.1,连接->传输数据->保持连接->传输数据->关闭连接。使用长连接的HTTP协议,会在响应头中添加:Connection:keep-alive

这个连接就是TCP的三次握手连接和四次挥手关闭连接

由于每次建立连接需要成本,而且短连接的情况下,建立和关闭连接很频繁,导致成本增加,长连接就是为了解决这个问题而产生的

3.HTTP/2.0有哪些技术提升了性能?

多路复用:在一个信道上传输多路信号和数据流的过程和技术。

以前只能我说一句,你回一句,现在我可以一次多说几句,你也可以给我一次多回几句

  • 二进制分帧是基础,通信单位为帧
  • 多请求并行不依赖多TCP连接(因为有长连接了)
  • 并行在一个TCP连接交互多种类型信息

头部压缩:

  • 在客户端和服务端之间维护一个静态的字典,字典中是常见的头部名称及方法
  • 对字符进行哈夫曼编码,来进行压缩

服务端推送:

传统的获取网页的过程都是客户端发送请求,服务端进行响应。

相当于服务端未卜先知,它知道客户端需要哪些数据并且主动的进行推送 。

4.HTTP报文结构

请求报文:[请求方法] [请求地址] [HTTP版本] [请求头] [请求内容]

响应报文:[HTTP版本] [状态码] [状态解释] [应答头] [应答内容]

5. HTTP的请求方法和使用场景

HTTP请求的本质是对服务器资源进行操作的过程(增删改查+系统功能)

GET:请求服务器发送某个资源

HEAD:和GET类似,但是服务器在响应时只返回首部,不返回内容(客户端对服务器某些资源进行检查)

POST:向服务器写入数据,登录

TRACE:观察请求报文到服务器的最终样子

PUT:和GET相反,向服务器写入资源(文件以及多媒体资源)

DELETE:请求服务器删除请求URL所指定的资源

6.常见的状态码

200~299:成功状态码

200:OK,请求没问题,实体包含所请求的资源

204:No Content ,响应报文中包含若干首部和一个状态行,没有实体部分

300~399:重定向状态码

304: Not Modified,所请求的资源未被修改,服务器返回此状态码,不会返回任何资源

400~499:客户端错误状态码

400:Bad Request,客户端请求的语法错误,服务器无法理解(构建请求报文时出错)

401:Unauthorized,用户没有访问权限,需要进行认证

403:Forbidden,当前客户端没有权限去请求这个资源,所以请求被服务器拒绝了(也可能是别的原因导致被拒绝)

404:Not Found,服务器无法找到所请求的URL

500~599:服务端错误状态码

500:Internal Server Error,服务器内部错误,无法完成请求

502:Bad Gateway,网关,或者代理出现问题

503:Service Unavailable,说明服务器现在无法提供服务(服务器宕机了)

504:Gateway Timeout,网关或代理的服务器,未及时从远端服务器获取请求

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值