02-HTTP的请求方法以及响应状态码
1. HTTP的请求方法以及响应状态码
1.1. 请求方法
http请求方法有GET、POST、PUT、HEAD、DELETE、OPTIONS、TRACE、CONNECT。当然上述方法是基于HTTP/1.1的,HTTP/1.0中独有的方法就不说了。
- GET----获取资源
- GET方法一般用来从服务器上获取资源的方法。服务器端接到GET请求后,就会明白客户端是要从服务器端获取相应的资源,然后就会根据请求报文中相应的参数,将需要的资源返回给客户端。使用GET方式的请求,传输的参数是拼接在URI上的。
- POST----数据提交
- POST方法一般用于表单提交,将客户端的数据塞到请求体中发送给服务器端。
- PUT----上传文件
- PUT方法主要用来上传文件,将文件内容塞到请求报文体中,传输给服务器。因为HTTP/1.1的PUT方法自身不带验证机制,所以任何人都可以上传文件,存在安全性,所以上传文件时不推荐使用。但是在设计接口使用REST标准时,可以使用PUT来做相应内容的更新。
- HEAD----获取响应报文头
- 响应端收到HEAD请求后,只会返回相应的响应头,不会返回响应体。
- DELETE----删除文件
- DELETE用于删除URI指定的资源,与PUT一样,自身也是不带验证机制的,不过在REST标准中可以用来做相应API的删除功能。
- OPTIONS----查询支持的方法
- OPTIONS方法是用来查询服务器可对那些请求方法做出响应,返回内容就是响应端所支持的方法。
- TRACE----追踪路径
- TRACE方法可追踪请求经过的代理路径,在发送请求时会为Max-Forwards头部字段填入数字,每经过一个代理中转Max-Forwards的值就会减一,直至Max-Forwards为零后,才会返回200。因为该方法易引起XST(Cross-Site Tracing,跨站追踪)攻击,所以不常用呢。
- CONNECT----要求用隧道协议连接代理
- CONNECT方法要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。主要使用SSL(Secure Sockets Layer, 安全套接层)和TLS(Transport Layer Security, 传输安全层)协议将通信内容进行加密后经网络隧道传输。
1.2. 响应状态码
HTTP协议的响应状态码。顾名思义,响应状态码是用来标志HTTP响应状态的,响应状态由响应状态码和响应原因短语构成,当然状态码有很多中,本部分就挑出来常用的状态码进行讨论。下方是响应状态码可以分为的几大类:
- 1xx ---- Informational(信息性状态码),表示接受的请求正在处理。
- 2xx ---- Success (成功),表示请求正常处理完毕。
- 3xx ---- Redirection (重定向),表示要对请求进行重定向操作,当然其中的304除外。
- 4xx ---- Client Error (客户端错误),服务器无法处理请求。
- 5xx ---- Server Error (服务器错误),服务器处理请求时出错。
上面是响应状态码的整体分类,接下来介绍一些常用的响应状态码。
(01)、200 OK : 表示服务端正确处理了客户端发送过来的请求。
(02)、204 No Content ['kɒntent]内容: 表示服务端正确处理请求,但没有报文实体要返回。
(03)、206 Partial [ˈpɑ:ʃl]部分 Content :表示服务端正确处理了客户端的范围请求,并按照请求范围返回该指定范围内的实体内容。
(04)、301 Moved Permanently['pɜ:mənəntlɪ]永久的:永久性重定向,若之前的URI保存到了书签,则更新书签中的URI。
(05)、302 Found:临时重定向,该重定向不会变更书签中的内容。
(06)、303 See Other:临时重定向,与302功能相同,但是303状态吗明确表示客户端应当采用GET方法获取资源。
(07)、304 Not Modified: 资源未变更,该状态码与重定向并没有什么关系,当返回该状态码时,告诉客户端请求的资源并没有更新,响应报文体中并不会返回所请求的内容。
(08)、400 Bad Request: 错误请求,表示请求报文中包含语法错误。
(09)、401 Unauthorized[ʌnˈɔ:θəraɪzd]未经许可的:请求未认证,表示此发送的请求需要客户端进行HTTP认证(稍后会提到)。
(10)、404 Not Found:找不到相应的资源,表示服务器找不到客户端请求的资源。
(11)、500 Internal [ɪnˈtɜ:nl]Server Error:服务器内部错误,表示服务器在处理请求时出现了错误,发生了异常。
(12)、503 Service Unavailable[ˌʌnəˈveɪləbl]难以获得的:服务不可用,表示服务器处于停机状态,无法处理客户端发来的请求。
02-HTTP的请求方法以及响应状态码的更多相关文章
- TCP/IP协议族(一) HTTP简介、请求方法与响应状态码
接下来想系统的回顾一下TCP/IP协议族的相关东西,当然这些东西大部分是在大学的时候学过的,但是那句话,基础的东西还是要不时的回顾回顾的.接下来的几篇博客都是关于TCP/IP协议族的,本篇博客就先简单 ...
- HTTP请求方法及响应状态码详解
HTTP请求方法和响应状态详解 HTTP请求方法 HTTP1.0/1.1支持的所有请求方法如下所示: GET 用来请求访问已被URI识别的资源.指定的资源经服务器解析后返回响应内容. POST POS ...
- 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响应消息.它也分为3个部分:状态行.消息报头.响应正文,格式如下: HTTP-VersionStatus-CodeReason-PhraseCRLF(CR ...
- HTTP协议、HTTP请求方法、常见状态码、HTTP消息
HTTP协议 客户端请求,服务端响应.浏览器与服务器不建立持久连接,响应后连接失效. HTTP请求方法 一.GET GET方法用于获取请求页面的指定信息. 二.HEAD 除了服务器不能在响应里返回消息 ...
- HTTP请求方法及常见状态码
GET: 请求指定的页面信息,并返回实体主体. HEAD: 只请求页面的首部. POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体. PUT: 从客户端向服务器传送的数据取代指定 ...
- iOS开发——网络篇——HTTP/NSURLConnection(请求、响应)、http响应状态码大全
一.网络基础 1.基本概念> 为什么要学习网络编程在移动互联网时代,移动应用的特征有几乎所有应用都需要用到网络,比如QQ.微博.网易新闻.优酷.百度地图只有通过网络跟外界进行数据交互.数据更新, ...
随机推荐
- Python unittest模块心得(二)
基础概念介绍请参看: http://www.cnblogs.com/frost-hit/p/8295818.html 组织测试用例 unittest.TestSuite(tests=()): 除了使用 ...
- error C2027: use of undefined type 'COleDispatchImpl'的解决方法
解决办法:在资源管理视图中删除CMDTARG.CPP文件,然后重新编译 设置断点后,F5调试运行,调试运行后,然后关编辑器提示保存对CMDTARG.CPP的修改,点了保存,出现error C2027: ...
- IntelliJ IDEA下"Cannot resolve symbol 'log'"的解决方法
转自:https://my.oschina.net/greatqing/blog/703989 最近接手了一个Maven项目,IDE使用的是IntelliJ IDEA,导入后可以编译运行.但是输出日志 ...
- ue-edit设置显示函数列表
UltraEdit的函数列表竟然不显示函数,那这功能要它何用,应该如何才能让函数显示出来呢? 公司编程基本上都在UltraEdit中进行,俺刚来公司还不熟悉,今天装了个UltraEdit,可是看着别人 ...
- 一个理解PHP面向对象编程(OOP)的实例
<?php //定义一个“人”类作为父类 class Person{ //声明一个新变量公共变量$name,可被任何包中的类访问 public $name;//人的名字 public $sex; ...
- 指数循环节&欧拉降幂
证明:https://www.cnblogs.com/maijing/p/5046628.html 注意使用条件(B的范围) 例题: FZU1759 HDU2837 ZOJ1674 HDU4335
- 使用命令导入、导出mysql数据
1.导出全部数据库 利用mysqldump的—all-databases参数可以一口气把你数据库root用户下的所有数据库一口气导出到一个sql文件里.然后,重装系统后使用source命令可以再一口气 ...
- 二十三、详述 IntelliJ IDEA 中恢复代码的方法「进阶篇」
咱们已经了解了如何将代码恢复至某一版本,但是通过Local History恢复代码有的时候并不方便,例如咱们将项目中的代码进行了多处修改,这时通过Local History恢复代码就显得很麻烦,因为它 ...
- 利用SQL模糊匹配来验证字段是否是日期格式
最近需要验证数据仓库某个字段是否转化成某种日期格式,比如时间戳格式 ‘2016-05-03 23:21:35.0‘, 但是DB2不支持REGEXP_LIKE(匹配)函数,所以需要重新想其他办法. 最后 ...
- IOS开发数据存储篇—IOS中的几种数据存储方式
IOS开发数据存储篇—IOS中的几种数据存储方式 发表于2016/4/5 21:02:09 421人阅读 分类: 数据存储 在项目开发当中,我们经常会对一些数据进行本地缓存处理.离线缓存的数据一般都 ...