http协议用于客户端和服务器之间的通信,请求访问资源的一方成为客户端,而提供资源响应的一方称为服务器端
西面就是客户端和服务器端之间简单的通信过程
客户端 发送请求request到服务器端,服务器端发送响应回复response到客户端
PS:请求必须从客户端建立通信,服务端没收到请求之前不会发送响应
请求的构成:
1)请求方法URI协议/版本
2)请求头(Request Header)
3)请求正文
响应的构成
1)状态行
2)响应头
3)响应正文
状态代码:
状态代码由3位数字组成,表示请求是否被理解或被满足
状态描述:
状态描述给出了关于状态代码的简短的文字描述
状态代码的第一个数字定义了响应的类别,后面两位没有具体的分类。
第一个数字有五种可能的取值:
- 1XX: 指示信息 - 标识请求已接受,继续处理
- 2XX: 成功 - 表示请求已经被成功接收、理解、接受。
- 3XX: 重定向 - 要完成请求必须进行更进一步的操作。
- 4XX: 客户端错误 - 请求有语法错误或请求无法实现。
- 5XX: 服务器端错误 - 服务器未能实现合法的请求
200 ok 客户端请求成功
400 bad request 由于客户端请求有语法错误,不能被服务器所理解
401 Unauthonzed 请求未经授权。这个状态代码必须和www-Authenticate报头域一起使用
403 Forbidden 服务器收到请求,但是拒绝提供服务。服务器通常会在响应正文中给出不提供服务的原因
404 Not Found 请求资源不存在,例如,输入了错误的URL
500 Internal Server Error 服务器发生不可预期的错误,导致无法完成客户端的请求
503 Service Unavailable 服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常