http
- HyperText Transfer Protocol 超文本传输协议是一种用于分布式、协作式的应用层协议
- 定义了客户端和服务器之间交换报文的格式和方式,默认为80端口
- 使用tcp作为传输层协议,保证了数据的可靠性
组成:
一个HTTP请求主要包括: 请求(Request)和响应(Response)
-
请求
主要包含: 请求行、请求头、请求体
-
请求行:
请求方法字段
URL字段
HTTP协议版本字段
GET/index.html HTTP/1.1
-
请求头:
键值对组成
User-Agent: 对应展示的浏览器的类型
-
Content-type: 对应的请求内容的数据类型
- application/x-www-form-urlencoded 数据以&分割 的键值对 键值对用=分割
- application/json json类型
- application/xml xml类型
- text/plain 文本类型
- multipart/form-data 表示上传文件
-
keep-alive
http是基于TCP协议的,但是通常在进行一次请求和响应结束后会立刻中断;
在http1.0中,如果想要继续保持连接:- 浏览器需要在请求头中添加 connection: keep-alive;
- 服务器需要在响应头中添加 connection:keey-alive;
- 当客户端再次放请求时,就会使用同一个连接,直接一方中断连接;
在http1.1中,所有连接默认是 connection: keep-alive的;
- 不同的Web服务器会有不同的保持 keep-alive的时间;
- Node中默认是5s中;
请求体: get/post所带的内容
-
-
响应
-
响应行
由协议版本、状态码 、状态码的原因短语组成
HTTP/1.1 200 OK
响应头
响应体
-
请求方法
- get 向服务器获取数据
- post 将响应实体交给指定的资源
- head 请求一个与get请求响应相同的响应 没有实体
- put 上传文件,用于替换目标资源的所有
- patch 用于对资源的部分修改
- delete 删除指定的资源
- connect: 建立一个到目标资源标识的服务器的隧道,通常用于代理服务器
- track: 回显服务器收到的请求 主要用于测试和诊断
响应状态码
- 可以根据不同的情况,给客户端返回不同的状态码;
- MDN响应码解析地址:https://developer.mozilla.org/zh-CN/docs/web/http/status
- 200 表示请求被服务器端正常处理
- 201 post请求,创建新的资源
- 301 永久重定向,表示资源被分配了新的URI,并返回该URI
- 4xx 表示客户端发生错误
- 400 请求报文存在语法错误
- 401 未授权的错误 必须携带身份信息
- 403 没有权限访问
- 404 服务器找不到请求资源
- 5xx 服务器错误
- 500 服务器遇到了不知道如何处理的情况
- 503 服务器不可用 处于维护或重载状态
请求数据格式化
为了查看数据更加的便捷、优雅,可以在浏览器安装一个Chrome插件:Fehelper