特点
支持客户/服务器模式
- 客户/服务器模式工作的方式是由客户端向服务器发出请求,服务器端响应请求,并进行响应服务
简单快速
- 客户端向服务器请求服务时,只需传送请求方法和路径
- 请求方法常用的有GET、POST、HEAD.每种方法规定了客户端与服务器联系的类型不同
- 由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度快
灵活
- HTTP允许传输任意类型的数据对象
- 正在传输的类型由Content-Type(Content-Type是HTTP包中用来表示内容类型的标识)加以标记
无连接
- 无连接的含义是限制每次连接只处理一个请求
- 服务器处理完客户的请求,并收到客户的应答后,即断开连接
- 采用这种方式可以节省传输时间
无状态
- HTTP协议是无状态协议
- 无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大
- 另一方面,在服务器不需要先前信息时它的应答就较快
每个请求都是完全独立的,每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接,多个实例对于同一个请求响应的结果是完全一致的,因为服务器不知道客户端是什么状态。即我们给服务器发送HTTP
请求之后,服务器根据请求,会给我们发送数据过来,但是,发送完,不会记录任何信息。
有状态就是无状态的对立,服务的实例可以将一部分数据随时进行备,服务器进行交流的时候知道这个是谁,会对请求进行记录。
HTTP
就是无状态的,TCP
就是有状态的,当然HTTP
可以通过Cookie
和Session
来变成有状态的。
URI和UR
- URI = Uniform Resource Identifier 统一资源标志符,用来标识抽象或物理资源的一个紧凑字符串。
- URL = Uniform Resource Locator 统一资源定位符,一种定位资源的主要访问机制的字符串,一个标准的URL必须包括:protocol、host、port、path、parameter、anchor。
- URN = Uniform Resource Name 统一资源名称,通过特定命名空间中的唯一名称或ID来标识资源。
大白话,就是URI是抽象的定义,不管用什么方法表示,只要能定位一个资源,就叫URI,本来设想的的使用两种方法定位:1,URL,用地址定位;2,URN 用名称定位。
HTTP报文结构分析-请求报文