B/S 架构:Browser(浏览器) ←→ Server(服务器),
C/S 架构:Client(客户端) ←→ Server(服务器),
约定内容
请求方法 —— GET / POST
响应状态 —— 200 / 404 / 302 / 304
约定形式
- 客户端通过随机端口与服务端某个固定端口(一般为80)建立连接 三次握手
- 客户端通过这个连接发送请求到服务端(这里的请求是名词)
- 服务端监听端口得到的客户端发送过来的请求
- 服务端通过连接响应给客户端状态和内容
get和post区别
区别项 | get | post |
---|---|---|
后退,按钮,刷新 | 无影响 | 数据会被重新提交 |
书签 | 可收藏为书签 | 不可收藏为书签 |
缓存 | 能被缓存 | 不能缓存 |
编码类型 | application/x-www-form-urlencoded | application/x-www-form-urlencoded或 multipart/form-data。为二进制数据使用多重编码。 |
历史 | 参数保留在浏览器历史中。 | 参数不会保存在浏览器历史中。 |
对数据长度的限制 | 受限(URL 的最大长度是 2048 个字符)。 | 无限制。 |
对数据类型的限制 | 只允许 ASCII 字符。 | 没有限制 |
安全性 | 较差(数据在 URL) | 安全(参数不会被保存在浏览器历史或 web 服务器日志中) |
可见性 | 数据在 URL 中对所有人都是可见的。 | 数据不会显示在 URL 中。 |
常见状态代码
状态代码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。
1xx:指示信息 —— 表示请求已接收,继续处理。
2xx:成功 —— 表示请求已被成功接收、理解、接受。3xx:重定向 —— 要完成请求必须进行更进一步的操作。
4xx:客户端错误 —— 请求有语法错误或请求无法实现。
5xx:服务器端错误 —— 服务器未能实现合法的请求。
常见状态代码
状态码 | 英文 | 描述 |
---|---|---|
200 | OK | 客户端请求成功。 |
400 | Bad Request | 客户端请求有语法错误,不能被服务器所理解。 |
401 | Unauthorized | 请求未经授权,这个状态代码必须和 WWW-Authenticate 报头域一起使用。 |
403 | Forbidden | 服务器收到请求,但是拒绝提供服务。 |
404 | Not Found | 请求资源不存在,举个例子:输入了错误的URL。 |
500 | Internal Server Error | 服务器发生不可预期的错误。 |
503 | Server Unavailable | 服务器当前不能处理客户端的请求,一段时间后可能恢复正常。 |