Web开发重要概念
零碎知识 Web开发 0 305

HTTP协议

请求头

  • Content-Type
    • application/json: JSON格式的数据
    • application/xml: XML格式的数据
    • application/x-www-form-urlencoded: URL编码的表单数据
    • multipart/form-data: 多部分表单数据,通常用于上传文件
    • text/plain: 纯文本数据
  • Connection
    • keep-alive: 保持连接
    • close: 关闭连接
    • upgrade: 协议升级【一般用于升级为WebSocket或者HTTP/2】
  • User-Agent: 可以伪造,且过于混乱
    • MacOS + Safari: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15
    • MacOS + Chrome: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36

响应头

  • Content-Type
    • HTML: text/html[;charset=utf-8]
    • 纯文本: text/plain
    • JSON: application/json
    • XML: application/xml
    • 图像: image/jpegimage/png
    • 音频: audio/mpegaudio/wav
  • Content-Length: 响应体长度
  • Content-Disposition: 处理响应体的方法
    • inline【默认】
    • attachment; filename="example.txt"

状态码

  • 1xx: 告知请求的处理进度
  • 2xx: 成功
    • 200 OK: 表示请求成功,并返回相应的数据
    • 201 Created: 表示请求成功,并创建了新的资源
    • 204 No Content:表示请求成功,但响应体为空,通常用于DELETE请求
  • 3xx: 需要进一步操作
    • 301 Moved Permanently: 表示请求的资源已经被永久移动到新的位置,需要访问使用新URI
    • 302 Found: 表示请求的资源临时移动到了另一个位置,并且还可能继续改变,需要继续访问当前URI【与301区别在于SEO优化】
    • 303 See Other: 临时重定向,明确要求用GET访问新路径,主要用于POST/PUT操作后的重定向,以避免用户刷新页面时重复提交表单
    • 304 Not Modified: 表示资源未修改,直接使用客户端缓存的版本
    • 307308: 规定了重定向时的请求方法不变【HTTP/1.1才引入,导致使用较少】
  • 4xx: 客户端错误
    • 400 Bad Request: 表示客户端发送的请求有错误
    • 401 Unauthorized: 表示用户未认证,需要提供认证信息
    • 403 Forbidden: 表示用户已认证,但缺少执行的权限
    • 404 Not Found: 表示请求的资源不存在
    • 405 Method Not Allowed: 请求的方法不可用
    • 415 Unsupported Media Type: 请求体格式不支持
  • 5xx: 服务端错误
    • 500 Internal Server Error: 表示服务器内部发生错误,无法完成请求
    • 502 Bad Gateway: 服务器作为网关且从上游服务器获取到了一个无效的HTTP响应
    • 503 Service Unavailable: 表示服务器暂时无法处理请求,通常是因为过载或维护
    • 504 Gateway Timeout: 服务器作为网关且不能从上游服务器及时的得到响应返回给客户端

浏览器

本地存储

辨析cookie, localStorage, sessionStorage

  1. 能否传递
    • cookie数据始终在同源的http请求中携带,即cookie在浏览器和服务器间来回传递
    • sessionStoragelocalStorage不会自动把数据发给服务器,仅在本地保存。
  2. 存储大小限制不同
    • cookie数据不能超过4k
    • sessionStoragelocalStorage可以达到5M或更大
  3. 数据有效期不同
    • sessionStorage仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持
    • localStorage始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据
    • cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭
  4. 作用域不同
    • sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面
    • localStoragecookie在所有同源窗口中都是共享的
编写
预览