协议是网络上数据传输时约定好的统一的数据格式,Http是网络分层中的应用层(应用程序)协议.
1. Http的协议格式
行信息分为 请求行 和 状态行/响应行.
其中在请求行中Method用来标识操作的类型(比如我们吃饭是网上点餐还是线下就餐).
响应行中的状态码是一个数字,标识服务器处理当前请求的结果(比如我们想要就餐,提供就餐或者座位满了不提供就餐)
2. Http的方法
这里只说一下GET和POST的区别.
a) GET
- 没body,请求数据只能在url queryString
- 请求数据的长度是有限的(当发送数据时,Get方法向URL 添加数据: URL的长度是受限制的(URL的最大长度是2048个字符))
- 数据类型只允许ASCLL字符
- 与POST相比安全性较差,因为所发送的数据是URL的一部分
- 数据在URL中对所有人都是可见的
b) POST
- 可以用body,请求数据既可以在 queryString,也可以在body
- 数据的长度无限制
- 对数据的类型无限制
- 相对GET来说更安全一点
- 数据不会显示在URL中
3. 常见的head头
Content-Type: 标识body的数据类型(text/html)
Content-Length: 标识Body的长度
location: 搭配3xx状态码使用,告诉客户端接下来去哪里访问
Cookie: 用于在客户端存储少量信息,通常用于实现会话(session)的功能
Host: 客户端告知服务器,所请求的资源是在哪个主机的哪个端口上
User-Agent: 声明用户的浏览器版本信息
referer: 当前页面是从哪个页面跳转过来的
4. Http的状态码(详情参照)
下面列出一些常见的状态码:
400: 请求数据某个字段不符合规定的类型,如需要传入一个int,但是却传了一个字符串
401: 一般是没有登录访问敏感数据
403: 一般是用户登录了,但是没有权限
405: 提供的服务方法不包含请求方法(比如餐厅只提供线下就餐,但请求网上订餐,返回405)
500: 一般是代码出错,报异常