HTTP协议的背景
超文本传输协议是一个简单的请求-响应协议,它通常运行在TCP之上,是互联网上应用最为广泛的一种网络协议。HTTP协议诞生之初主要是应用与WEB端内容获取。
特点:
- 简单快速。客户向服务器请求服务时,只需传送请求的方法和路径。请求的方法常用的有GET、HEAD、POST、DELETE。每一种方法规定了客户与服务器练习的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
- 灵活。HTTP协议允许传输任意类型的数据,如json格式数据、表单数据、xml、文件流等待,需要在HTTP报文中指明Content-Type的类型。
- 无连接。即限制每次连接只处理一个请求。服务器处理完客户的请求并收到客户的应答后,就会断开连接。采用这种方法可以节省传输时间。
- 无状态。无状态是指协议对于事务处理没有记忆的能力。缺少状态意味着如果后续处理需要钱买你的信息,则需要重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答会比较快。
支持B/S和C/S模式。HTTP协议时应用层协议,是TCP/IP协议族内众多协议中的一员,是在TCP协议基础上建立的。HTTP发起请求时,通过底层TCP协议将客户机和服务器连接起来建立通信通道,并进行相应的服务。
缺点:
- 通信使用明文(不加密),内容可能会被窃听。
- 不验证通信放的身份,因此有可能遭遇伪装。
- 无法证明报文的完整性,所以有可能已遭篡改。
了解TCP协议可以参考这篇博客:TCP/UDP协议的概念及区别
HTTP工作过程
1、首先,客户端会向服务器发送请求消息。请求消息中包含的内容是“对什么”和“进行怎样的操作”两个部分。其中相当于“对什么”的部分称为