Http协议和常用的响应状态码以及get和post请求的区别

简介:项目做好以后,需要让所有人都能访问到,项目放在本机电脑上是无用的,除非将项目上线。 上线就是将项目上传到远程服务器,大家就能访问了。 服务器:其实就是一台远程电脑。远程电脑不一定是服务器;需要开启特殊的服务 ==> 能被别人访问的服务。 这个服务如何开启?可以通过安装软件:nginx、tomcat、apache、。。。

因为软件也是代码写的,nodejs写的服务器也是用来开启这个服务的 我们访问别人的资源,用本地目录的打开方式是无法访问到的,所以必须使用http才能访问到。 http:全称 HyperText transfer protocol 译文是超文本传输协议。 协议:保障双方利益 哪双方:服务器和客户端 什么利益:传输超文本,给出去,能收到 协议内容分3部分:这3个步骤都是由客户端主动开始的 1、建立连接 双方在确保通信的基础:

我方:

我方是否可以发消息

我方是否可以收消息

对方是否可以收消息

对方是否可以发消息

对方: 我方是否可以发消息

我方是否可以收消息

对方是否可以收消息

对方是否可以发消息

演示图

2、开始通信

请求 ==> 请求报文 请求行 请求方式

标准的请求方式:

GET ==> 查

POST ==> 增

PUT ==> 改

DELETE ==> 删

请求路径:不是完整的路径,在完整路径中去掉协议域名端口号以后的路径 协议和版本

GET和POST的区别

  • 数据传输方式:

    • GET: 通过URL传递参数,在URL的末尾附加参数键值对(query string)的形式,例如 http://example.com/resource?param1=value1&param2=value2。因此,GET请求的数据会暴露在URL中,有长度限制(因为URL长度的限制),且不安全,适合传输少量非敏感信息。
    • POST: 将参数放在请求体中传输,而不是在URL中。POST请求的数据不会暴露在URL上,可以传输大量数据,且相对安全,适合传输敏感信息或者大数据量。
  • 安全性:

    • GET: 因为数据在URL中可见,所以不适合传输敏感信息,如密码等。
    • POST: 数据在请求体中,相对安全,适合传输敏感信息。
    • 幂等性:

      • GET: 通常是幂等的,多次请求同一个URL返回的结果应该是相同的(除非中间有改变)。
      • POST: 不是严格意义上的幂等,多次POST请求可能会有不同的副作用,例如重复提交订单等。
    • 数据长度限制:

      • GET: 由于数据在URL中传输,长度有限制(依赖于浏览器和服务器),通常不超过2048个字符。
      • POST: 没有长度限制,但是受服务器配置的影响,可以传输大量数据。
    • 缓存机制:

      • GET: 可以被缓存,因为GET请求的参数和URL在浏览器历史记录中留下痕迹。
      • POST: 通常不会被缓存,因为POST请求的参数不会保存在浏览器历史记录中。
    • 使用场景:

      • GET: 适合用于获取数据,如搜索、查询等操作,因为它可以被书签保存和缓存。
      • POST: 适合用于提交数据,如表单提交、文件上传等操作,因为它可以传输更多数据且相对安全。

响应

响应行 :

协议和版本

响应状态码

响应的状态描述

  1. 标准状态码:
  • 1xx:信息类
  • 2xx:成功类
  • 3xx:重定向类
  • 4xx:客户端错误类
  • 5xx:服务器错误类

  • 常见状态码:
  • 200:ok
  • 304:内容是从缓存中来的
  • 302:临时重定向
  • 301:永久重定向
  • 401:身份或权限验证失败(token出问题的时候)
  • 403:没有权限访问
  • 404:已经访问到目标服务器了,但是目标服务器中没有这个地址的响应,客户端写错地址了
  • 405:请求方法不对
  • 500:服务器内部错误
  • 502:网关错误
  • 504:网关超时

响应头

  • 常见的响应头

// cors的响应头

Access-Control-Allow-Origin: '*/指定的白名单ip'

// 还有缓存相关的响应头: expires eTag if-since....

  • 响应主体

  • 断开连接:4次挥手

http是无状态协议,每次通信之间是完全没有关联的。

  • 25
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值