HTTP 协议
HTTP协议简介
HTTP 是一个简单的请求-响应协议,通常运行在TCP上,请求和响应消息头以ASCII码形式给出,而消息内容则具有一个类似MIME的格式。
使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。基于C/S架构进行通信。
这个简单模型是早期Web的奠基。成为WWW的支撑协议,属于应用层协议 ,是为了实现某一类具体应用的协议。
在 Web 应用中,服务器把网页传给网页传给浏览器,实际上就是把网页的HTML代码发送给浏览器,
让浏览器显示出来。而浏览器和服务器之间的传输协议是HTTP,所以得出结论:
1 、HTML是一种用来定义网页的文本,会HTML,就可以编写网页;
2 、HTTP是在网络上传输HTML的协议(超文本传输协议),用于浏览器和服务器的通信。
3 、HTTP协议是无状态、无连接的并且我们可以灵活使用它,因为HTTP可以传输任意类型的数据只需要在Content-Type里设置类型即可。
常用HTTP状态码
- 200 - 请求成功
- 301 - 网页等资源被永久转移到其它URL
- 302 - 网页等资源被临时转移到其它URL
- 404 - 请求的资源(网页等)不存在
- 500 - 内部服务器错误
工作流程
HTTP 协议工作于客户端-服务端架构上,浏览器作为HTTP 客户端,通过URL向HTTP服务端,即Web服务器发送所有请求。
Web服务器根据接收到的请求后,向客户端发送响应信息。
HTTP请求
步骤1:浏览器首先向服务器发送HTTP请求,请求包括:
- 方法:GET还是POST,GET仅请求资源,POST会附带用户数据;
- 路径:/full/url/path;
- 域名:由Host头指定:Host: www.sina.com
- 以及其他相关的Header;
- 如果是POST,那么请求还包括一个Body,包含用户数据
步骤2:服务器向浏览器返回HTTP响应,响应包括:
- 响应代码:200表示成功,3xx表示重定向,4xx表示客户端发送的请求有错误,5xx表示服务器端处理时发生了错误;
- 响应类型:由Content-Type指定;
- 以及其他相关的Header;
- 通常服务器的HTTP响应会携带内容,也就是有一个Body,包含响应的内容,网页的HTML源码就在Body中。
步骤3:如果浏览器还需要继续向服务器请求其他资源,比如图片,就再次发出HTTP请求,重复步骤1、2
特点
1、简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。
每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
2、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
3.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
4.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。
另一方面,在服务器不需要先前信息时它的应答就较快。
5、支持B/S及C/S模式。