请求方法

方法 描述
GET 从服务器获取资源信息,请求参数在URL路径中提交
POST 在服务器新建一个资源,请求参数在BODY中提交,建议采用JSON格式
OPTION 获取信息,关于资源的哪些属性是客户端可以改变的,跨域请求常用
PUT 在服务器更新资源(客户端提供改变后的完整资源)
DELETE 从服务器删除资源

GET和POST方法区别

  1. GET在浏览器回退时是无害的,而POST会再次提交请求
  2. GET产生的URL地址可以被收藏,而POST不可以
  3. GET请求会被浏览器主动缓存,而POST不会,除非手动设置
  4. GET请求只能进行url编码,而POST支持多种编码方式
  5. GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留
  6. GET请求在URL中传送的参数是有长度限制的,而POST没有限制·对参数的数据类型,GET只接受ASCIl字符,而POST没有限制
  7. GETPOST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息
  8. GET参数通过URL传递,POST放在Request body

状态码

  • 200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)。
  • 201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。
  • 202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务)
  • 204 NO CONTENT - [DELETE]:请求成功,不返回相应资源数据,如删除数据成功。
  • 400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。
  • 401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)。
  • 403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。
  • 404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。
  • 406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。
  • 410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。
  • 422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。
  • 500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。

    持久连接

    HTTP 协议采用“请求-应答”模式,当使用普通模式,即非 Keep-Alive 模式时,每个请求/应答客户和服务器都要新建一个连接,完成之后立即断开连接(HTTP 协议为无连接的协议)

当使用 Keep-Alive 模式(又称持久连接、连接重用)时,Keep-Alive 功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive 功能避免了建立或者重新建立连接。

HTTP 与 HTTPS

  1. HTTPURLhttp://开头,HTTPS的URL为https://开头
  2. HTTP标准端口80HTTPS标准端口是443
  3. OSI网络模型中,HTTP工作于应用层,HTTPS工作于传输层
  4. HTTP是不安全的,而HTTPS是安全的
  5. HTTP无法加密,而HTTPS对传输的数据进行加密
  6. HTTP无需证书,HTTPS需要CA机构颁发的SSL证书