HTTP(HyperText Transfer Protocol)超文本传输协议,是应用层最常见的协议,常用于web应用中。
默认端口号:80
可靠数据传输:一般采用TCP/IP协议来实现保证可靠数据传输
无状态:默认为非持久连接,所以Http协议也说是无状态的协议。
报文:主要分为两种,请求(Request)报文和响应(Response)报文
请求报文格式: 请求行 - 通用信息头 - 请求头 - 实体头 - 报文主体
请求行:方法字段 URL字段 HTTP协议版本
方法字段:GET,POST,HEAD,PUT,DELETE
URL字段:目标对象在服务器的路径
版本号:当前的HTTP协议版本
通用信息头(请求报文与响应报文都会使用的首部字段)
Date:创建报文时间
Connection:连接的管理(持久连接或是非持久连接)
Cache-Control:缓存的控制
Transfer-Encoding:报文主体的传输编码方式
请求头:
Host:服务器主机
Referer头域:原地址URL
User-agent:用户代理,也就是浏览器类型
Cookie:发送本地储存的一个SessionId到服务器中索引Session
实体头(请求报文与响应报文的的实体部分使用的首部字段)
Allow:资源可支持的HTTP方法
Content-Type:实体主类的类型
Content-Encoding:实体主体适用的编码方式
Content-Language:实体主体的自然语言
Content-Length:实体主体的的字节数
Content-Range:实体主体的位置范围,一般用于发出部分请求时使用
响应报文格式: 状态行 - 通用信息头 - 响应头 - 实体头 - 报文主体
状态行:协议版本 状态码 相应状态信息
协议版本:当前的HTTP协议版本
状态码和对应的状态信息在后面会列举一些常见的
通用信息头(请求报文与响应报文都会使用的首部字段)
Date:创建报文时间
Connection:连接的管理(持久连接或是非持久连接)
Cache-Control:缓存的控制
Transfer-Encoding:报文主体的传输编码方式
响应头:
Location:服务器返回的新界面的URL
Server:服务器的一些信息
实体头(请求报文与响应报文的的实体部分使用的首部字段)
Allow:资源可支持的HTTP方法
Content-Type:实体主类的类型
Content-Encoding:实体主体适用的编码方式
Content-Language:实体主体的自然语言
Content-Length:实体主体的的字节数
Content-Range:实体主体的位置范围,一般用于发出部分请求时使用
常见状态码和对应的状态信息:
200 OK 请求成功
301 Moved Permanently 请求的URL被永久更改了,返回新的URL在Location字段中,一般软件会自动对该URL进行访问
400 Bad Request 一个通用的差错代码,表示请求服务器无法理解,一般是报文有错误
404 Not Found 请求的文档不在服务器上,一般是URL写错了
505 HTTP Version Not Supported 表示请求的报文和协议的版本不对应
HTTP的缺点与HTTPS
通信使用明文不加密,内容可能被窃听
不验证通信方身份,可能遭到伪装
无法验证报文完整性,可能被篡改
HTTPS就是HTTP加上加密处理(一般是SSL安全通信线路)+认证+完整性保护
参考博客:https://www.cnblogs.com/sunny-sl/p/6529830.html