ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

HTTP协议中的请求方法、状态码与状态文字(HTTP协议详解)

2022-02-02 20:02:48  阅读:121  来源: 互联网

标签:返回 协议 HEAD HTTP 重定向 状态 服务器 请求


文章目录


1. 请求方法详解

常用请求方法:

GET、HEAD、PUT、TRACE、DELETE、OPTIONS。

注意:

  1. HEAD和GET方法基本一致,只是HEAD不返回内容。当我们只是需要确定一个内容是否正常存在时,就可以使用HEAD。例如,当我们想要确认一张照片是否还存在时,就可以使用HEAD方法,不需要返回照片的内容。

    例如:我们用GET方法发出请求时,会返回相应的内容:

    image-20220202183522745

    而使用HEAD方法则不返回内容:

    image-20220202183816133

  2. TRACE用法:当我们使用了代理,比如代理访问news.163.com,你想看看代理有没有修改我们的HTTP请求,我们可以用TRACE来测试一下,163.com的服务器就会把最后收到的请求返回给我们。

  3. 虽然这些请求方法是HTTP协议里规定的,但WEB SERVER未必允许或支持这些方法。

  4. OPTIONS用法:是返回服务器可用的请求方法。

    image-20220202184448273

2. 状态码与状态文字详解

  • 状态码是用来反应服务器的响应情况的。

    常见的如200 OK,404 NOT FOUND

  • 状态文字是用来描述状态码的,便于人观察。

  • 状态码的5个系列:

    image-20220202185144108

    常用的状态码:

    1. 200 – 服务器成功返回网页

    2. 301/2 – 永久/临时重定向

      举例:

      302默认临时重定向:

      我们先将04.php文件重定向到百度网站

      image-20220202193318891

      当打开04.php文件时,我们可以看到302的状态码信息

      image-20220202193425757

      301为指定永久重定向:

      image-20220202193732110

      其中,true参数意指将301信息替换原来的头信息。

      注意:

      对于GET请求,重定向无所谓,能看到内容就行。但对于POST请求,比如将表单重定向到05.php,再将05.php重定向到06.php,此时会出现数据找不到的情况,那么如何解决这个问题呢?

      我们使用307状态码,在重定向之后仍然使用POST请求,此时可以成功返回数据:

      image-20220202194501213

    3. 304 Not Modified – 未修改

      客户端在向服务器发送请求信息时,会在请求头信息中加入一个时间戳和Etag(唯一资源标识符),当时间戳和Etag没有改变时,客户端就会告诉服务器可以在缓存中取出相应的响应信息。

      例如,当客户端请求一张图片时,如果在时间戳(If-Modified-Since)之后图片没有发生改变,并且图片的Etag也没有发生改变,服务器就会在缓存中提取该图片,然后响应给客户端,此时返回的就是304的状态码。

      image-20220202190642613

    4. 307 – 重定向中保持原有的请求数据

    5. 404 – 请求的网页不存在

    6. 503 – 服务器暂时不可用

    7. 500 – 服务器内部错误


参考视频:https://www.bilibili.com/video/BV1js411g7Fw?p=2

标签:返回,协议,HEAD,HTTP,重定向,状态,服务器,请求
来源: https://blog.csdn.net/weixin_45605541/article/details/122771611

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有