HTTP的定义
HTTP全称是HyperText Transfer Protocol,即超文本传输协议,它定义了客户端和服务器之间请求和响应的格式与规则。
HTTP是一个传输协议,即将数据由A传到B或者由B传到A,并且A与B之间能够有很多第三方;传输的数据并不是计算机底层中的二进制包,而是完整的、有意义的数据,如HTML文件、图片文件、查询结果等超文本,它们能够被上层应用识别。
HTTP的优点
- 简单:客户端向服务器请求服务时,只需传送请求方法和路径。
- 快速:HTTP协议简单,使得服务器的程序规模小,所以通信速度很快。
- 灵活:HTTP协议允许传输任意类型的数据对象,正在传输的数据类型由Content-Type加以标记。
- 无连接:限制每次连接只处理一个请求,服务器处理完客户端的请求并收到客户端的应答后就断开连接,采用这种方式可以节省传输时间。
- 无状态:服务器不会记录HTTP的状态,所以不需要额外的资源来记录状态信息,可以减轻服务器的负担,能够把更多的CPU和内存用来对外提供服务。
- 明文传输:传输过程中的信息方便阅读,利于调试。
HTTP的缺点
- 无状态:服务器不会记录HTTP的状态,在完成有关联性的操作时会非常麻烦。
- 明文传输:传输过程中的信息直接暴露给外界。
- 不安全:
- 窃听风险:通信使用明文(不加密),内容可能会被窃听,eg账号密码泄露。
- 冒充风险:不验证通信方的身份,因此有可能遭遇伪装,eg访问假的淘宝。
- 篡改风险:无法证明报文的完整性,所以有可能已遭篡改,eg目标网站被植入垃圾广告。