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