通过curl 来对比http状态码301和302

简介: 通过curl 来对比http状态码301和302

概述

curl

使用命令行工具发送请求,一个 HTTP 请求客户端(实际上它也可以做 FTP/SCP/TELNET 协议的事情)。可类比于浏览器中的 fetch

curl 不加参数直接发送get请求

  • --head
  • --head 发送 HEAD 请求
  • --include
  • 打印request Header reponse Body


curl https://jsonplaceholder.typicode.com/todos/1 -i

1686893482358.jpg

  • --request
  • 指定请求方法,如 POST 等。
  • --verbose
  • 查看发送报文及 TLS handshake 的详细信息
  • --location
  • --location,追踪重定向。
# 重定向两次后请求到数据
curl --location http://zhihu.com
# 可使用 --head,查看到三次响应
curl --head --location http://zhihu.com

浏览器请求:http://zhihu.com 会重定向至:https://www.zhihu.com/signin?next=%2F说明肯定发生了重定向

直接curl http://zhihu.com 返回301 也说明发生了重定向 我们详细看下执行curl --head --location http://zhihu.com发生了什么

第一次响应永久重定向 301 重定向至 https://www.zhihu.com

1686893592538.jpg

第二次响应暂时重定向302 重定向至 https://www.zhihu.com/signin?next=%2F

image.jpeg

第三次响应 200 成功

1686893632049.jpg

301 & 302

这里我们看到了请求 http://zhihu.com 返回301 永久重定向

301 301 Moved Permanently 说明请求的资源已经被移动到了由 Location 头部指定的 url 上,是固定的不会再改变。搜索引擎会根据该响应修正。

请求https://www.zhihu.com 返回302 临时重定向

HTTP 302 Found 重定向状态码表明请求的资源被暂时的移动到了由该 HTTP 响应的响应头 Location 指定的 URL 上。浏览器会重定向到这个 URL,但是搜索引擎不会对该资源的链接进行更新

适用场景

301适合永久重定向

301比较常用的场景是使用域名跳转。

302用来做临时跳转

比如未登陆的用户访问用户中心重定向到登录页面。

访问404页面会重新定向到首页。



相关文章
|
2月前
|
存储 缓存 安全
第二章 HTTP请求方法、状态码详解与缓存机制解析
第二章 HTTP请求方法、状态码详解与缓存机制解析
|
2月前
状态码对于理解HTTP请求和响应的流程,以及调试网络问题非常重要
【5月更文挑战第15天】HTTP状态码由三位数字表示,分为1xx-5xx五类。1xx为信息响应,2xx表示成功,如200(请求成功)、201(创建成功)。3xx是重定向,如301(永久移动)、302(临时重定向)。4xx表示客户端错误,如400(坏请求)、404(未找到)。5xx是服务器错误,包括500(内部服务器错误)和503(服务不可用)。这些状态码用于理解请求响应流程和调试网络问题。
31 1
|
2天前
|
缓存 JSON 算法
http【详解】状态码,方法,接口设计 —— RestfuI API,头部 —— headers,缓存
http【详解】状态码,方法,接口设计 —— RestfuI API,头部 —— headers,缓存
4 0
|
4天前
|
缓存 网络协议 小程序
计算机网络——HTTP 状态码
计算机网络——HTTP 状态码
|
1月前
|
Java
JSP 教程 之 JSP HTTP 状态码 4
JSP教程讲解了HTTP状态码的使用,包括HTTP响应的结构和设置状态码的方法:通过HttpServletResponse的setStatus、sendRedirect及sendError。示例展示了如何发送407错误码,浏览器显示"Need authentication!!!"。
16 1
|
1月前
|
Java 数据安全/隐私保护
JSP 教程 之 JSP HTTP 状态码 2
JSP教程讲解了HTTP状态码,包括成功、重定向、客户端错误和服务器错误等类别。例如,200表示请求成功,404表示页面未找到,500表示服务器内部错误。这些状态码帮助理解HTTP通信过程中发生的问题。
24 2
|
13天前
|
JSON API 数据格式
curl 使用:命令行中的 HTTP 客户端
`curl` 是命令行神器,用于与服务器交互,支持HTTP、HTTPS、FTP等协议。本文教你如何用它做POST请求(-d/--data)、GET请求(-G/-d)、JSON请求(-H 'Content-Type: application/json')和文件上传(-F)。学会这些,轻松测试API、自动化任务。现在就动手试试吧!
13 0
|
16天前
|
缓存
什么是http状态码?常见的有哪些?它们所代表什么含义?
什么是http状态码?常见的有哪些?它们所代表什么含义?
13 0
|
18天前
|
安全 搜索推荐
基础入门 HTTP数据包&Postman构造&请求方法&请求头修改&状态码判断
基础入门 HTTP数据包&Postman构造&请求方法&请求头修改&状态码判断
|
2月前
|
XML 存储 缓存
HTTP状态码的分类
HTTP状态码的分类
16 1