HTTP 、同源、跨域

192 阅读2分钟

HTTP

请求基本格式如下(可从 Chrome 开发者工具 nextwork 下查看):

HTTP请求方法   URL   HTTP/1.1
Host:   xxx.com
Connection: keep-alive
Accept: application/json, text/plain, */*
……
\r\n (回车换行)
{"name":"leyili"}(请求体)

响应基本格式如下:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Connection: keep-alive
Set-Cookie: x_jwt=eyJhbGciOiJIUz
……
\r\n (回车换行)
{"name":"leyili"}(响应体)

GET 和 POST 的区别

  • 幂等性,GET 多用于没有副作用,幂等的场景;而 POST 多用于副作用,不幂等的场景。
  • 请求参数,GET 的参数一般都在 URL 上,浏览器会保存历史记录,POST 的参数在请求体中;POST 比 GET 安全一点点🤏。
  • GET 请求会受浏览器地址栏的长度限制
  • POST 支持更多的编码类型

参考链接:

  1. POST-MDN

HTTP 状态码

主要分为以下五种类型:

  • 1xx:信息响应,如 100 表示一切正常,请继续~
  • 2xx:成功响应,如 200 表示请求成功,数据将随响应返回
  • 3xx:重定向,如 301 表示永久移动,302 表示临时移动
  • 4xx:客户端错误,如 403 表示服务器拒绝该请求,404 表示服务器找不到该资源
  • 5xx:服务端错误,如 500 表示服务器不知道如何处理,503 表示服务不可用,504 表示网关超时

参考链接:

  1. 说说HTTP 常见的状态码有哪些及其适用场景

  2. HTTP 响应代码 - MDN

HTTP 缓存

参考链接:

  1. 彻底弄懂前端缓存
  2. 图解 HTTP 缓存

image.png

HTTP 和 HTTPS 的区别

  1. HTTP 是明文传输,不安全;HTTPS 是加密传输的,非常安全。
  2. HTTP 使用 80 端口;HTTPS 使用 443 端口。
  3. HTTP 较快;HTTPS 较慢。
  4. HTTP 不需要证书;HTTPS 需要购买证书,也有免费的。

参考链接:

  1. 图解SSL/TLS协议

浏览器的同源策略和跨域方案

参考链接:

  1. 浏览器同源政策及其规避方法
  2. 浏览器的同源策略-MDN