一、什么是http协议
- HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。
- HTTP协议是构建在TCP/IP协议之上的,是TCP/IP协议的一个子集。
- HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。
- 默认的HTTP的端口号为:80,HTTPS的端口号为:443。
- HTTP是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系的,对HTTP服务器来说,它并不知道这两个请求来自同一个客户端。
本质:http就是一个通信规则,通信规则规定了客户端发送给服务器的内容格式,也规定了服务器发送给客户端的内容格式。
客户端发给服务器的格式叫“请求报文格式”;服务器发给客户端的格式叫“响应报文格式”。
二、http协议的特点
简单快速:每个资源URL(统一资源符),比如图片、页面地址,所以http协议中处理比较简单,访问某个资源输入URL即可;
灵活:每个http协议中有一个头部分,有个数据类型,通过一个http协议的就可以完成不同数据类型的传输。
无连接:连接一次就断开,不会保持连接。
无状态:服务器不保留与客户交易时的任何状态。
三、http协议工作流程
1、服务器--客户端
HTTP协议永远都是客户端发起请求,服务器回送响应。
一次HTTP操作称为一个事务,其工作过程可分为四步:(浏览器和ajax请求时就是这样的)
1)首先客户机与服务器需要建立连接
2) 建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。
如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏输出。对于用户来说,这些过程是由HTTP自己完成。
2、服务器-代理--客户端
我们的请求有可能是经过了代理服务器,最后才到达Web