HTTP请求方法及响应状态码详解
HTTP请求方法和响应状态详解
HTTP请求方法
HTTP1.0/1.1支持的所有请求方法如下所示:

GET
用来请求访问已被URI识别的资源。指定的资源经服务器解析后返回响应内容。

POST
POST方法用来传输实体的主体(一般是身份认证信息数据或者是请求服务的参数数据),虽GET方法也能做到,但一般不用。POST的功能和GET很类似,但POST的主要目的并不是获取响应的主体内容。

PUT
PUT方法用来传输文件,要求在请求报文的主体中包含文件内容,然后将文件保存请求URI指定的位置。
但是由于PUT方法自身不带验证机制,所以为了保障Web网站安全(防止恶意文件上传),一般不使用PUT方法。

状态码204表明文件传输成功,且没有数据返回。
DELETE
DELETE用来删除文件,是与PUT方法完全相反的方法,使用DELETE方法可以按照请求URI删除指定的资源。同样,DELETE方法本身也不带验证机制,一般Web网站都不会使用DELETE方法。
HEAD
HEAD方法和GET方法一样,只是不返回响应报文的主体部分,一般用来确认URI的有效性以及资源更新的日期时间。

上述例子通过HEAD方法请求响应得到响应报文的首部,根据首部就可以确认请求URI是否有效以及请求资源的更新时间。
Options
OPTIONS方法用来查询针对请求URI指定资源支持的请求方法。

上述例子表明请求URI指定资源支持的请求方法有GET、POST、HEAD、OPTIONS。
HTTP响应状态码
响应状态码的职责在于告知客户端请求的处理结果。

五类响应状态码
在三位的响应状态码中,第一位代表了相应的类别,后两位无任何含义,只是状态码的代号。

在上述五类响应状态码中,着重关注成功状态码(2XX)、客户端错误状态码(4XX)以及服务器错误状态码(5XX)。
200 OK
表示请求被正常处理。而根据不同请求方法,得到的响应报文中的响应实体信息也不同。

例如,使用GET方法,对应请求资源的实体会作为响应实体返回;而使用HEAD方法时,响应实体中只包含请求资源的实体首部信息(不会返回主体部分)。
204 No Content
请求已成功处理,但是返回的响应报文中不包含实体的主体部分。

一般在只需要从客户端往服务器发送信息,而对客户端不需要发送新信息内容时使用。
206 Partial Content
当客户端发起的是HTTP范围请求(即请求头中使用了字段Range),服务器若成功执行,则返回响应码206。

301 Moved Permanently
永久重定向,表明请求的资源已被分配了新的URI,以后请求该资源应使用新的URI。
302 Found
临时重定向,请求的资源被分配了临时的新URI,希望用户本次能使用新的URI请求该资源。
303 See Other
功能和302相同,但明确的表示客户端应采用GET方法获取资源。
304 Not Modified
客户端发送了附带条件的请求时,服务器端允许请求访问资源,但是请求条件未满足的情况。
400 Bad Request
该状态码表示请求报文存在语法错误,需要对请求内容进行修改后再次进行请求。
401 Unauthorized
若之前没有进行请求,则表示客户端发送的请求需要包含通过HTTP认证的认证信息;若之前已经进行过请求,则表示用户认证失败。

返回401的响应中必须包含一个WWW-Authenticate首部用以质询用户信息,浏览器初次接收到401响应时,会弹出认证用的对话窗口。
403 Forbidden
拒绝对请求资源的访问,发生403的情况:
- 未获得文件系统访问权限
- 使用受限制的IP地址访问网站资源
404 Not Found
- 服务器上找不到请求的资源
- 拒绝请求但不想向客户端表明原因
500 Internal Server Errot
- 服务器端在执行请求时发生了错误
- Web应用存在bug或者出现临时故障
503 Service Unavailable
服务器此时无法处理请求(服务暂时不可用)。出现503的可能原因:
- 服务器暂时处于超负荷状态
- 服务器正进行停机维护
如果事先得知解除上述状况需要的时间,服务端最好在响应报文中写入Retry-After首部字段再返回给客户端。
参考资料
《图解HTTP》 by 上野宣
HTTP请求方法及响应状态码详解的更多相关文章
- TCP/IP协议族(一) HTTP简介、请求方法与响应状态码
接下来想系统的回顾一下TCP/IP协议族的相关东西,当然这些东西大部分是在大学的时候学过的,但是那句话,基础的东西还是要不时的回顾回顾的.接下来的几篇博客都是关于TCP/IP协议族的,本篇博客就先简单 ...
- 02-HTTP的请求方法以及响应状态码
1. HTTP的请求方法以及响应状态码 1.1. 请求方法 http请求方法有GET.POST.PUT.HEAD.DELETE.OPTIONS.TRACE.CONNECT.当然上述方法是基于HTT ...
- php中Http请求方法和响应状态码整理教程
HTTP请求报文由请求行(request line).请求头部(header).空行和请求数据4个部分组成,格式如下 可见请求行由请求方法字段.URL字段和HTTP协议版本字段3个字段组成,它们用空格 ...
- http学习--常用请求方法和响应状态码
常用的http请求方法: GET方法:请求服务器资源,并返回 POST方法:向指定资源提交数据进行处理请求(比如说表单,上传文件等).数据被包含在请求体中.POST请求可能会导致新的资源建立或已有资源 ...
- http请求方法与响应状态码
请求方法:GET POST HEAD PUT DELETE OPTIONS常用的方法是:GET POST GET提交可以在浏览器地址栏看到提交的信息 POST提交方式不显示在地址栏,相对于GET方式较 ...
- HTTP协议 (六) 状态码详解
HTTP协议 (六) 状态码详解 HTTP状态码,我都是现查现用. 我以前记得几个常用的状态码,比如200,302,304,404, 503. 一般来说我也只需要了解这些常用的状态码就可以了. 如果 ...
- python接口自动化(七)--状态码详解对照表(详解)
简介 我们为啥要了解状态码,从它的作用,就不言而喻了.如果不了解,我们就会像个无头苍蝇,横冲直撞.遇到问题也不知道从何处入手,就是想找别人帮忙,也不知道是找前端还是后端的工程师. 状态码的作用是:we ...
- 前端基础:HTTP 状态码详解
HTTP 状态码详解 1xx(信息类):表示接收到请求并继续处理 100 客户端应当继续发送请求.这个临时响应是用来通知客户端他的部分请求已经被服务器接收,且仍未被拒绝.客户端应当继续发送请求的剩余部 ...
- HTTP协议状态码详解(HTTP Status Code)(转)
原文链接:HTTP协议状态码详解(HTTP Status Code) 使用ASP.NET/PHP/JSP 或者javascript都会用到http的不同状态,一些常见的状态码为: 200 – 服务器成 ...
随机推荐
- windows下使用dos命令手工与ntp服务器同步系统时间
管理员模式的命令窗口 net stop w32time &w32tm /unregister &w32tm /register &net start w32time & ...
- 轻量级工具Vite到底牛在哪——一文全知道
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文参考:https://www.sitepoint.com/vitejs-front-end-build- ...
- python爬虫——拉钩网python岗位信息
之前爬取的网页都是采用"GET"方法,这次爬取"拉勾网"是采取了"POST"的方法.其中,"GET"和"POS ...
- Linux信号与golang中的捕获处理
什么是信号 在计算机科学中,信号是Unix.类Unix以及其他POSIX兼容的操作系统中进程间通讯的一种有限制的方式.它是一种异步的通知机制,用来提醒进程一个事件已经发生. 当一个信号发送给一个进程, ...
- [刷题] PTA 6-11 求自定类型元素序列的中位数 (25分)
采用希尔排序 1 #include <stdio.h> 2 3 #define MAXN 10 4 typedef float ElementType; 5 6 ElementType M ...
- 【转载】linux 安装 中文输入法 Fcitx 手动
在 Linux(测试版)中安装中文输入法 由于一些原因,目前在 Linux(测试版)中无法调用系统的输入法,故需要安装第三方输入法为 Linux(测试版)中的应用提供中文输入支持.本文档旨在介绍第三方 ...
- 下载: www.bitmover.com/lmbench,最新版本3.0-a9
软件说明: lmbench是个用于评价系统综合性能的多平台开源benchmark,能够测试包括文档读写.内存操作.进程创建销毁开销.网络等性能,测试方法简单.Lmbench是个多平台软件,因此能够对同 ...
- cento 7使用minicom串口调试工具
cento 7使用minicom串口调试工具 因为要使用串口配置设备,所以考虑要用串口管理软件,windows下比较容易了,直接用超级终端也好,用CRT也可以,CentOS系统稍微麻烦一点,前几天 ...
- Centos6下通过 oprofile分析CPU性能
Centos6下通过 oprofile分析CPU性能 2014-01-18 10:55:15 bobpen 阅读数 2218更多 分类专栏: linux 版权声明:本文为博主原创文章,遵循CC 4 ...
- 攻防世界(七)ics-06
攻防世界系列:ics-06 1.打开题目 很LiuPi的样子,根据题目提示点开报表中心(其他的点开没什么变化) 注意到URL中有?id=1,测试其他数值无果 3.抓包对id爆破 设置1-10000,爆 ...