-
概念:超文本传输协议,规定了浏览器和服务器之间数据传输的规则。
-
特点:
- 基于TCP协议,面向连接,更安全
- 基于请求-响应模型,一次请求对应一次响应
- 是无状态的协议,对事务处理没有记忆能力。每次请求-响应都是独立的。
-
HTTP请求数据格式
- HTTP请求数据分为三部分:
- 请求行:请求数据的第一行,类型为:请求方式 /请求资源路径 HTTP/1.1(协议版本)
- 请求头:第二行开始,以键值对的形式
- 请求体:POST请求方式特有的,在请求的最后一部分,用于存放请求参数
- 常见的几种HTTP请求头:
- HOST:表示请求的主机名
- User-Agent:表示浏览器版本
- Accept:表示浏览器接收的资源类型,如text/*
- Accept-Language:表示浏览器偏好的语言
- Accept-Encoding:表示浏览器支持的压缩类型
- GET请求和POST请求区别:
- get请求请求参数在请求行中,没有请求体;post请求请求参数在请求体中
- get请求请求参数有大小限制,post请求没有
-
HTTP响应数据格式
- HTTP响应数据同样分为三部分:
- 响应行:格式为:响应版本 响应状态码 响应状态码描述
- 响应头:第二行开始,以键值对的形式
- 响应体:最后一部分,存放响应数据
- 常见的HTTP响应头
- Content-Type:表示该响应内容的类型
- Content-Length:响应内容的长度
- Cache-Control:表示客户端应如何缓存
- 状态码大类
- 1XX:临时状态码,表示请求已接受,告诉客户端继续请求或者如果它已经完成就忽略它。
- 2XX:成功,表示请求已被成功接收,处理已完成。
- 3XX:重定向,客户端请求的资源已经被移到其他地方,它让客户端再发起一个请求以完成整个处理。
- 4XX:客户端错误,处理发生错误,责任在客户端。如:请求不存在的资源,客户端未被授权,禁止访问等。此时应该看是不是客户端请求路径有问题。
- 5XX:服务端错误,处理发生错误,责任在服务端。如:服务端抛出异常,路由出错,HTTP版本不支持。这种情况,一般是要检查自己的代码是不是出了错误。
- 常见响应状态码
- 200 OK 客户端请求成功,即处理成功。
- 302 Found 资源移动到了location所指向的url,浏览器会自动重新访问这个页面。
- 404 Not Found 请求资源不存在,如url不存在、网站资源被删除等
- 500 Internal Server Error 服务器发生了不可预期的错误,应该查看日志