HTTP协议

概念

  1. 无状态超文本传输协议,默认端口80
  2. 基于请求与响应,TCP/IP的应用层协议,规定客户端服务器数据传输格式
  • 无状态:不对之前请求或响应的状态进行管理(现在用cookie管理状态)
  • 无连接:每次只处理一个请求,服务器处理完,客户端应答后,就断开

请求报文组成

  1. 请求行
    方式(head,put,options,delete)、路径、版本HTTP1.1

  2. 请求头
    让浏览器知道的信息,常见属性:
    Cache-Control: no-cache
    Pragma:no-cache
    Connection:keep-alive
    content-type: application/json
    Authorization:web认证信息(token有使用,把token放这个字段传到后端)

  3. 请求体
    get没有,post有

响应报文

  1. 组成:响应行、响应头、空行、响应体
  2. 常见响应头属性:
    ETag:响应服务端资源,ETag随这个资源发生变化(登录页有使用)
    Set-Cookie:通知客户端保存cookie
    Connection:keep-alive
    content-type: application/json

状态码

  • 1xx:提示
  • 2xx:成功200
  • 3xx:重定向(304资源未修改)(301永久重定向)(302临时重定向)
  • 4xx:客户端错误(404无法找到资源)(401身份验证)
    (400语法错误,content-type字段不一致)
    405请求方式错误,get用成了post
    403forbbiden访问微信小程序图片出现,解决方法用meta标签的一个属性no-referrer
  • 5xx:服务端错误(500服务器内部错误)(503超载或维护)

URL

  1. 协议
  2. 域名
  3. 端口(隐藏了,在域名后面输入:80还是这个网页,说明默认就是80,https为443)
  4. 虚拟目录、文件名、锚、参数(不重要)

HTTPS

  1. 默认端口443
  2. HTTP明文传递
  3. HTTPS由SSL(安全套接层)+HTTP构建的可加密传输、身份验证的协议,ca证书

encodeURL()和encodeURLComponent()编码

  1. 解码方法为decodeRUL和decodeURLComponent
  2. url作为参数传递时,没有用encodeURLComponent(),会造成url中特殊字符丢失
  3. 当在浏览器输入大括号{},会被自动编码,但是后端能收到正常数据

HTTP1.0和HTTP1.1

  1. HTTP1.1实现了默认长连接connection:keep-alive
  2. HTTP1.1封装更好
  3. 管道化:不用等待响应就可以发送下一个请求

常用HTTP属性字段

大佬博客

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值