http知识总结
layout: '''http'
title: 知识整理'
date: 2019-06-09 17:07:20
tags:
---
简介
超文本传输协议(HTTP)是用于传输诸如HTML的超媒体文档的应用层协议。它被设计用于Web浏览器和Web服务器之间的通信,但它也可以用于其他目的.HTTP是无状态协议,意味着服务器不会在两个请求之间保留任何数据(状态).
http 首部
HTTP 消息首部被用来描述资源信息,或是客户端和服务器的行为。
http 请求方法
HTTP 定义了一组请求方法, 以表明要对给定资源执行的操作。指示针对给定资源要执行的期望动作. 虽然他们也可以是名词,但这些请求方法有时被称为HTTP动词. 每一个请求方法都实现了不同的语义,
| 请求方法 | 说明 | 总结 |
|---|---|---|
| GET | GET方法请求一个指定资源的表示形式. 使用GET的请求应该只被用于获取数据 | 请求数据 (查) |
| HEAD | HEAD方法请求一个与GET请求的响应相同的响应,但没有响应体 | 请求数据 木有响应体 |
| POST | POST方法用于将实体提交到指定的资源,通常导致在服务器上的状态变化或副作用 | 提交数据 (增,改) |
| PUT | PUT方法用请求有效载荷替换目标资源的所有当前表示 | 和POST不同之处在于PUT是幂等的 |
| OPTIONS | OPTIONS方法用于描述目标资源的通信选项。 | 询问浏览器支持哪些方法 |
| DELETE | DELETE方法删除指定的资源。 | 删除数据 (删) |
| CONNECT | CONNECT方法建立一个到由目标资源标识的服务器的隧道。 | 开启一个客户端与所请求资源之间的双向沟通的通道。 |
| TRACE | TRACE方法沿着到目标资源的路径执行一个消息环回测试。 | 浏览器支持程度未知 |
| PATCH | PATCH方法用于对资源应用部分修改。 | 修改数据 (改) 非幂等 |
## HTTP 状态返回码
- 信息响应
| 状态码 | 英文名称 | 说明 | 总结 |
|---|---|---|---|
| 100 | Continue | 继续。客户端应继续其请求 | - |
| 101 | Switching Protocols | 切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议 | 换协议 |
| 102 | Processing | 此代码表示服务器已收到并正在处理该请求,但没有响应可用。 | 朕知道了 |
| 103 | Early Hints | 此状态代码主要用于与Link 链接头一起使用,以允许用户代理在服务器仍在准备响应时开始预加载资源。 | 预加载 |
- 成功响应
| 状态码 | 英文名称 | 说明 | 总结 |
|---|---|---|---|
| 200 | Ok | 请求成功。 | - |
| 201 | Created | 该请求已成功,并因此创建了一个新的资源。这通常是在PUT请求之后发送的响应。 | put成功 |
| 202 | Accepted | 请求已经接收到,但还未响应,没有结果。意味着不会有一个异步的响应去表明当前请求的结果,预期另外的进程和服务去处理请求,或者批处理。 | 朕知道了 |
| 203 | Non-Authoritative Information | 服务器已成功处理了请求,但返回的实体头部元信息不是在原始服务器上有效的确定集合,而是来自本地或者第三方的拷贝。 | 非授权信息。 |
| 204 | No Content | 服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档 | 用以前的 |
| 205 | Reset Content | 服务器成功处理了请求,且没有返回任何内容。但是与204响应不同,返回此状态码的响应要求请求者重置文档视图。 | 重置表单 |
| 206 | Partial Content | 服务器成功处理了部分 GET 请求 | 部分内容 |
- 重定向
| 状态码 | 英文名称 | 说明 | 总结 |
|---|---|---|---|
| 300 | Multiple Choice | 请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择。 | 多种选择 |
| 301 | Moved Permanently | 被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个 URI 之一。 | 永久重定向 |
| 302 | Found | 请求的资源现在临时从不同的 URI 响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。 | 临时重定向 |
| 303 | See Other | 对应当前请求的响应可以在另一个 URI 上被找到,而且客户端应当采用 GET 的方式访问那个资源。 | 查看其它地址 |
| 304 | Not Modified | 如果客户端发送了一个带条件的 GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个状态码。304 响应禁止包含消息体,因此始终以消息头后的第一个空行结尾。 | 未修改 |
| 305 | Use Proxy | 被请求的资源必须通过指定的代理才能被访问。 | 这个api快凉了 |
| 306 | Unused | 已经被废弃的HTTP状态码 | 已经凉了 |
| 307 | Temporary Redirect | 临时重定向。与302类似。使用GET请求重定向 | 302了解一下 |
- 客户端响应
| 状态码 | 英文名称 | 说明 | 总结 |
|---|---|---|---|
| 400 | Bad Request | 1、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。2、请求参数有误。 | 服务器表示不懂你 |
| 401 | Unauthorized | 请求要求用户的身份认证 | 要认证的,兄die |
| 402 | Payment Required | 此响应码保留以便将来使用,创造此响应码的最初目的是用于数字支付系统,然而现在并未使用。 | 666 |
| 403 | Forbidden | 服务器已经理解请求,但是拒绝执行它。 | 朕知道了,但朕懒得理你 |
| 404 | Not Found | 请求失败,请求所希望得到的资源未被在服务器上发现 | 久仰久仰 |
| 405 | Method Not Allowed | 客户端请求中的方法被禁止。 | 方法不行呀 |
| 406 | Not Acceptable | 请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体。 | 臣妾做不到啊 |
| 407 | Proxy Authentication Required | 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权 | 请联系我的律师 |
| 408 | Request Timeout | 服务器等待客户端发送的请求时间过长,超时 | 等的花都谢了 |
| 409 | Conflict | 服务器完成客户端的PUT请求是可能返回此代码,服务器处理请求时发生了冲突 | 不好,有冲突 |
| 410 | Gone | 被请求的资源在服务器上已经不再可用,而且没有任何已知的转发地址。 | 死了这条心吧 |
| 411 | Length Required | 服务器拒绝在没有定义 Content-Length 头的情况下接受请求 | 没有Content-Length,不好意思,我们不认识 |
| 412 | Precondition Failed | 服务器在验证在请求的头字段中给出先决条件时,没能满足其中的一个或多个。 | 不过门槛 |
| 413 | Payload Too Large | 服务器拒绝处理当前请求,因为该请求提交的实体数据大小超过了服务器愿意或者能够处理的范围。 | 数据辣鸡,不处理 |
| 414 | Request-URI Too Large | 请求的URI过长(URI通常为网址),服务器无法处理。 | URI 辣鸡,不处理 |
| 415 | Unsupported Media Type | 对于当前请求的方法和所请求的资源,请求中提交的实体并不是服务器中所支持的格式,因此请求被拒绝。。 | 不支持,不处理 |
| 416 | Requested Range Not Satisfiable | 如果请求中包含了 Range 请求头,并且 Range 中指定的任何数据范围都与当前资源的可用范围不重合,同时请求中又没有定义 If-Range 请求头,那么服务器就应当返回416状态码。 | 请求的范围无效 |
| 417 | Expectation Failed | 此响应代码意味着服务器无法满足Expect请求标头字段指示的期望值。 | 期望太高 |
| 418 | I'm a teapot | 服务器拒绝尝试用 “茶壶冲泡咖啡”。 | 我是茶壶,HTCPCP服务器是一个茶壶 |
- 服务端响应
| 状态码 | 英文名称 | 说明 | 总结 |
|---|---|---|---|
| 500 | Internal Server Error | 服务器遇到了不知道如何处理的情况。 | 服务器懵逼 |
| 501 | Not Implemented | 此请求方法不被服务器支持且无法被处理。只有GET和HEAD是要求服务器支持的,它们必定不会返回此错误代码。 | 不支持 |
| 502 | Bad Gateway | 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应。 | 不是胶水啊,喂 |
| 503 | Service Unavailable | 常见原因是服务器因维护或重载而停机。 请注意,与此响应一起,应发送解释问题的用户友好页面。 | 请求太突然,服务器没有准备好处理请求 |
| 504 | Gateway Time-out | 充当网关或代理的服务器,未及时从远端服务器获取请求 | 网关的锅 |
| 505 | HTTP Version not supported | 服务器不支持请求的HTTP协议的版本,无法完成处理。 | http版本不支持 |
参考
http知识总结的更多相关文章
- 你必须知道的EF知识和经验
注意:以下内容如果没有特别申明,默认使用的EF6.0版本,code first模式. 推荐MiniProfiler插件 工欲善其事,必先利其器. 我们使用EF和在很大程度提高了开发速度,不过随之带来的 ...
- MySQL高级知识- MySQL的架构介绍
[TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...
- 学点HTTP知识
不学无术 又一次感觉到不学无术,被人一问Http知识尽然一点也没答上来,丢人丢到家了啊.平时也看许多的技术文章,为什么到了关键时刻就答不上来呢? 确实发现一个问题,光看是没有用的,需要实践.看别人说的 ...
- java中的字符串相关知识整理
字符串为什么这么重要 写了多年java的开发应该对String不陌生,但是我却越发觉得它陌生.每学一门编程语言就会与字符串这个关键词打不少交道.看来它真的很重要. 字符串就是一系列的字符组合的串,如果 ...
- [C#] C# 知识回顾 - 你真的懂异常(Exception)吗?
你真的懂异常(Exception)吗? 目录 异常介绍 异常的特点 怎样使用异常 处理异常的 try-catch-finally 捕获异常的 Catch 块 释放资源的 Finally 块 一.异常介 ...
- [C#] C# 知识回顾 - 学会处理异常
学会处理异常 你可以使用 try 块来对你觉得可能会出现异常的代码进行分区. 其中,与之关联的 catch 块可用于处理任何异常情况. 一个包含代码的 finally 块,无论 try 块中是否在运行 ...
- [C#] C# 知识回顾 - 学会使用异常
学会使用异常 在 C# 中,程序中在运行时出现的错误,会不断在程序中进行传播,这种机制称为“异常”. 异常通常由错误的代码引发,并由能够更正错误的代码进行 catch. 异常可由 .NET 的 CLR ...
- [C#] C# 知识回顾 - 异常介绍
异常介绍 我们平时在写程序时,无意中(或技术不够),而导致程序运行时出现意外(或异常),对于这个问题, C# 有专门的异常处理程序. 异常处理所涉及到的关键字有 try.catch 和 finally ...
- [.NET] C# 知识回顾 - Event 事件
C# 知识回顾 - Event 事件 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6060297.html 序 昨天,通过<C# 知识回顾 - ...
- [.NET] C# 知识回顾 - 事件入门
C# 知识回顾 - 事件入门 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6057301.html 序 之前通过<C# 知识回顾 - 委托 de ...
随机推荐
- Android EditText方框验证码 短信验证码的实现
package com.loaderman.securitycodedemo; import android.graphics.Color; import android.support.v7.app ...
- redhat下配置SEED DVS6446开发环境2
---恢复内容开始--- 1.rpcbind步骤 linux包:portmap安装包 libgssglue-0.1-8.1.el6.i686.rpm libtirpc-0.2.1-1.el6.i68 ...
- PyQt GUI--信号与槽
目录 目录 前言 系统软件 GUI的主循环 信号与槽 信号的应用 使用控件类的内建信号 自定义信号 带参数的信号 槽的应用 创建槽 信号和槽的连接 最后 前言 PyQt中的信号和槽,就是一个触发和执行 ...
- centos7 忘记root密码,如何进入单用户模式。
init方法 1.centos7的grub2界面会有两个入口,正常系统入口和救援模式: 2.修改grub2引导 在正常系统入口上按下"e",会进入edit模式,搜寻ro那一行,以l ...
- 错误:expected initializer before "***"
今天写了一个程序,编译时报了一个错误:expected initializer before "***"报错的语句只是程序开头的一个变量定义语句,怎么会有这样的错误呢,琢磨了半天也 ...
- c++ 引用 日期&时间
日期时间[点击进入看吧,没啥可后期拓展的] 引用 引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字.一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量. 一.引用和指针的 ...
- HDU 1024 Max Sum Plus Plus (动态规划、最大m子段和)
Max Sum Plus Plus Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- java中的小知识点
1.数据类型的相关知识点 1.1.java内置封装类的转换 java中内置的封装类Byte.Integer.Float.Double和Long都可以转换成double类型的数值:因为这些封装好的类中都 ...
- C++:string操作函数
要想使用标准C++中string类,必须要包含 #include <string>// 注意是<string>,不是<string.h>,带.h的是C语言中的头文件 ...
- PHP:ReflectionClass
一.简介 ReflectionClass 类报告了一个类的有关信息 ReflectionException 类继承Exception 二.常用函数 ReflectionClass::__constru ...