Http以及常见状态码

时间:2021-08-08
本文章向大家介绍Http以及常见状态码,主要包括Http以及常见状态码使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

HTTP 协议概述

  HTTP协议采用了请求/响应模型。

  客户端向服务器发送一个请求,请求头包含请求的方法、URL、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,响应的内容包括消息协议的版本,成功或者错误编码加上服务器信息、实体元信息以及可能的实体内容。
HTTP 已经演化出了很多版本,它们中的大部分都是向下兼容的。
(1)HTTP/0.9:已过时。只接受 GET 一种请求方法,没有在通讯中指定版本号,且不支持请求头。由于该版本不支持 POST 方法,所以客户端无法向服务器传递太多信息。
(2)HTTP/1.0:这是第一个在通讯中指定版本号的 HTTP 协议版本,至今仍被广泛采用,特别是在代理服务器中。
(3)HTTP/1.1当前版本。持久连接被默认采用,并能很好地配合代理服务器工作。还支持以管道方式同时发送多个请求,以便降低线路负载,提高传输速度。

HTTP 方法

HTTP 支持几种不同的请求命令,这些命令被称为 HTTP 方法(HTTP method)。每条 HTTP 请求报文都包含一个方法, 告诉服务器要执行什么动作,包括:获取一个页面,运行一个网关程序,删除一个文件等。最常用的获取资源的方法是 GET、POST

HTTP 方法 描述
GET  请求获取 Request-URI 所标识的资源
PUT  请求服务器存储一个资源,并用 Request-URI 作为其标识
DELETE 请求服务器删除 Request-URI 所标识的资源
POST 在 Request-URI 所标识的资源后附加新的数据
HEAD

请求获取由 Request-URI 所标识的资源的响应消息报头



  GET 方法采用的是 URL 后缀的形式,比如 http://www.test.com/a.php?Id=123 就是一个 GET 请求,服务器接收后可以解析出 Id=123。而POST方法不需要在URL中显示”?Id=123”参数作为内容进行了隐藏的提交。因此,表单类或者有用户名、密码等内容提交时建议使用 POST 方法
  GET 方法在 URL 上显示参数,而URL是有长度限制,故不适合提交过大的数据。GET方法可以被浏览器缓存,当请求已经被请求过一次的 URL 时,浏览器不需要向服务器再次发出请求,直接在本地缓存中获得页面。

GET 和 POST 比较

GET 方法:(从指定的服务器上获得数据

  • 对数据长度的限制:URL 的长度是受限制的(URL 的最大长度是 2048 个字符
  • 缓存:能被缓存
  • 安全性:与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。在发送密码或其他敏感信息时绝不要使用 GET
  • 历史记录参数保留在浏览器历史中
  • 后退按钮/刷新:无害
  • 书签可收藏为书签


POST 方法:(提交数据给指定服务器处理

  • 对数据长度的限制:无限制
  • 缓存:不能缓存
  • 安全性:POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 Web 服务器日志中
  • 历史记录:参数不会保存在浏览器历史中
  • 后退按钮/刷新:数据会被重新提交,浏览器应该告知用户数据会被重新提交
  • 书签:不可收藏为书签

HTTP 状态码分类

  • 1** 信息,服务器收到请求,需要请求者继续执行操作
  • 2** 成功,操作被成功接收并处理
  • 3** 重定向,需要进一步的操作以完成请求
  • 4** 客户端错误,请求包含语法错误或无法完成请求
  • 5** 服务器错误,服务器在处理请求的过程中发生了错误

4开头的状态码:

 1 400 Bad Request
 2 客户端请求的语法错误,服务器无法理解
 3 401 Unauthorized
 4 请求要求用户的身份认证
 5 402 Payment Required
 6 保留,将来使用
 7 403 Forbidden
 8 服务器理解请求客户端的请求,但是拒绝执行此请求
 9 404 Not Found
10 服务器无法根据客户端的请求找到资源(网页) 。通过此代码,网站设计人员可设置’您所请求的资源无法找到"的个性页面
11 405 Method Not Alowed
12 客户端请求中的方法被禁止
13 406 Not Acceptable
14 服务器无法根据客户端请求的内容特性完成请求
15 407 Proxy Authentication Required
16 请求要求代理的身份认证,与401类似, 但请求者应当使用代理进行授权
17 408 Request Time-out
18 服务器等待客户端发送的请求时间过长,超时
19 409 Conflict
20 服务器完成客户端的PUT请求是可能返回此代码,服务器处理请求时发生了冲突
21 410 Gone
22 客户端请求的资源已经不存在。410不同于404, 如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置
23 411 Length Required
24 服务器无法处理客户端发送的不带Content-Length的请求信息
25 412 Precondition Failed
26 客户端请求信息的先决条件错误
27 413 Request Entity Too Large
28 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务Large器暂时无法处理,则会包含-个Retry-After的响应信息
29 414 Request-URI Too Large
30 请求的URI过长(URI通常为网址),服务 器无法处理
31 415 Unsupported Media Type
32 服务器无法处理请求附带的媒体格式
33 416 Requested range not satisfiable
34 客户端请求的范围无效
35 417 Expectation Failed
36 服务器无法满足Expect的请求头信息

5开头的状态码:

 1 500 Internal Server Error
 2 服务器内部错误 ,无法完成请求
 3 501 Not Implemented
 4 服务器不支持请求的功能,无法完成请求
 5 502 Bad Gateway
 6 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求
 7 503 Service Unavailable
 8 由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中
 9 504 Gateway Time-out
10 充当网关或代理的服务器,未及时从远端服务器获取请求
11 505 HTTP Version not supported
12 服务器不支持请求的HTTP协议的版本,无法完成处理

常用的状态码:

 1 200 OK
 2 请求成功(其后是对GET和POST请求的应答文档)
 3 301 Moved Permanently
 4 请求的永久页面跳转
 5 403 Forbidden
 6 禁止访问该页面
 7 404 Not Found
 8 服务器无法找到被请求的页面
 9 500 Internal Server Error
10 内部服务器错误
11 502 Bad Gateway
12 无效网关
13 503 Service Unavailable
14 当前服务不可用
15 504 Gateway Timeout
16 网关请求超时

总结:

HTTP协议有多种获得Web资源的方法,常用的方法:GET和POST

 1 GET
 2 请求获取Request-URI所标识的资源
 3 PUT
 4 请求服务器存储一个资源,并用Request-URI作为其标识
 5 DELETE
 6 请求服务器删除Request-URI所标识的资源
 7 POST
 8 在Request-URI所标识的资源后附加新的数据
 9 HEAD
10 请求获取由Request-URI所标识的资源的响应消息报头

GET

1 • GET请求能被缓存
2 • GET请求会保存在浏览器的浏览纪录里
3 • GET请求有长度的限制
4 • 主要用于获取数据
5 • 查询的字符串会显示在URL中,不安全

POST

1 • POST请求不能被缓存
2 • POST请求不会保存在浏览器的浏览纪录里
3 • POST请求没有长度限制
4 • 查询的字符串不会显示在URL中,比较安全

原文地址:https://www.cnblogs.com/xyc11/p/15106719.html