分类 收藏备忘 下的文章 - 机不可失的小站
首页
关于
友情链接
搜 索
1
粼光应用商店 APP
616 阅读
2
网络百宝箱 2.1.1
463 阅读
3
如何使用 Android 设备科学上网
446 阅读
4
免费二级域名合集
375 阅读
5
微箱APP 1.4.0
330 阅读
默认分类
软件分享
旧版软件
修改软件
小众软件
提取软件
网站分享
收藏备忘
自制软件
教程分享
登录
搜 索
标签搜索
网络
域名
网站开发
IP
照片编辑器
网络百宝箱
WPS Office
NekoBox
代理
免root
MiXplorer
文件管理
开发助手专业版
小米计算器
计算器
GitHub
Speedtest
测网速
1DM+
下载
机不可失
累计撰写
64
篇文章
累计收到
14
条评论
首页
栏目
默认分类
软件分享
旧版软件
修改软件
小众软件
提取软件
网站分享
收藏备忘
自制软件
教程分享
页面
关于
友情链接
用户登录
登录
找到
2
篇与
收藏备忘
相关的结果
2023-05-20
HTTP 响应状态码
状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果。借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了错误。这一期我们就来总结一下 HTTP 状态码。HTTP 状态码分为 5 类:状态码类别原因短语1XXInformational(信息性状态码)接收的请求正在处理2XXSuccessful(成功状态码)请求正常处理完毕3XXRedirection(重定向状态码)需要进行附加操作以完成请求4XXClient error(客户端错误状态码)服务器无法处理请求5XXServer error(服务器错误状态码)服务器处理请求出错1XX 信息响应100 Continue(继续)这个临时响应表明,收到了请求的起始部分,客户端应该继续请求,如果已经完成,则忽略它。101 Switching Protocol(切换协议)服务器正根据客户端的指示将协议切换成 Update 首部列出的协议,并且指示服务器也正在切换的协议。102 Processing (WebDAV)此代码表示服务器已收到并正在处理该请求,但没有响应可用。103 Early Hints此状态代码主要用于与 Link 链接头一起使用,以允许用户代理在服务器仍在准备响应时开始预加载资源。2XX 成功响应200 OK在响应报文内,随状态码一起返回的信息会因方法的不同而发生改变。比如,使用 GET 方法时,对应请求资源的实体会作为响应返回;而使用 HEAD 方法时,对应请求资源的实体首部不随报文主体作为响应返回(即在响应中只返回首部,不会返回实体的主体部分)。201 Created(已创建)对那些要服务器创建对象的请求来说,新的资源已创建完毕。这通常是在 POST 请求,或是某些 PUT 请求之后返回的响应。202 Accepted(已接受)请求已经接收到,但服务器尚未处理,还未响应。意味着不会有一个异步的响应去表明当前请求的结果,预期另外的进程和服务去处理请求,或者批处理。203 Non-Authoritative Information(非权威信息)服务器已成功处理了请求,但返回的实体头部元信息不是在原始服务器上有效的确定集合,而是来自本地或者第三方的拷贝。当前的信息可能是原始版本的子集或者超集。例如,包含资源的元数据可能导致原始服务器知道元信息的超集。使用此状态码不是必须的,而且只有在响应不使用此状态码便会返回 200 OK 的情况下才是合适的。204 No Content(没有内容)该状态码代表服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分。另外,也不允许返回任何实体的主体。比如,当从浏览器发出请求处理后,返回 204 响应,那么浏览器显示的页面不发生更新。一般在只需要从客户端往服务器发送信息,而对客户端不需要发送新信息内容的情况下使用。205 Reset Content(重置内容)服务器成功处理了请求,且没有返回任何内容。但是与 204 响应不同,返回此状态码的响应要求请求者重置文档视图。该响应主要是被用于接受用户输入后,立即重置表单,以便用户能够轻松地开始另一次输入。与 204 响应一样,该响应也被禁止包含任何消息体,且以消息头后的第一个空行结束。206 Partial Content(部分内容)该状态码表示客户端进行了范围请求,而服务器成功执行了这部分的 GET 请求。响应报文中包含由 Content-Range 指定范围的实体内容。207 Multi-Status (WebDAV)由WebDAV(RFC 2518)扩展的状态码,代表之后的消息体将是一个XML消息,并且可能依照之前子请求数量的不同,包含一系列独立的响应代码。208 Already Reported (WebDAV)在 DAV 里面使用: propstat 响应元素以避免重复枚举多个绑定的内部成员到同一个集合。226 IM Used (HTTP Delta encoding)服务器已经完成了对资源的 GET 请求,并且响应是对当前实例应用的一个或多个实例操作结果的表示。3XX 重定向300 Multiple Choice(多项选择)被请求的资源有一系列可供选择的回馈信息,每个都有自己特定的地址和浏览器驱动的商议信息。用户或浏览器能够自行选择一个首选的地址进行重定向。301 Moved Permanently(永久搬离)永久性重定向。该状态码表示请求的资源已被分配了新的 URI,以后应使用资源现在所指的URI。也就是说,如果已经把资源对应的 URI 保存为书签了,这时应该按 Location 首部字段提示的 URI 重新保存。302 Found(已找到)临时性重定向。该状态码表示请求的资源已被分配了新的 URI,希望用户(本次)能使用新的 URI 访问。303 See Other(参见其他)该状态码表示由于请求对应的资源存在着另一个 URI,应使用 GET 方法定向获取请求的资源。304 Not Modified(未修改)该状态码表示客户端发送附带条件的请求时,服务器端允许请求访问资源,但未满足条件的情况。304 状态码返回时,不包含任何响应的主体部分。附带条件的请求是指采用 GET 方法的请求报文中包含 If-Match,If-ModifiedSince,If-NoneMatch,If-Range,If-Unmodified-Since 中任一首部。305 Use Proxy(使用代理)被请求的资源必须通过指定的代理才能被访问。Location 域中将给出指定的代理所在的 URI 信息,接收者需要重复发送一个单独的请求,通过这个代理才能访问相应资源。只有原始服务器才能建立305响应。306 unused(未使用)在最新版的规范中,306 状态码已经不再被使用。307 Temporary Redirect(临时重定向)临时重定向。该状态码与 302 Found 有着相同的含义。尽管 302 标准禁止 POST 变换成GET,但实际使用时大家并不遵守。307 会遵照浏览器标准,不会从 POST 变成 GET。但是,对于处理响应时的行为,每种浏览器有可能出现不同的情况。308 Permanent Redirect这意味着资源现在永久位于由 Location: HTTP Response 标头指定的另一个 URI。这与 301 Moved Permanently HTTP 响应代码具有相同的语义,但用户代理不能更改所使用的 HTTP 方法:如果在第一个请求中使用 POST,则必须在第二个请求中使用 POST。4XX 客户端响应400 Bad Request(坏请求)该状态码表示请求报文中存在语法错误。当错误发生时,需修改请求的内容后再次发送请求。另外,浏览器会像 200 OK 一样对待该状态码。401 Unauthorized(未授权)该状态码表示发送的请求需要有通过 HTTP 认证(BASIC 认证、DIGEST 认证)的认证信息。另外若之前已进行过 1 次请求,则表示用户认证失败。返回含有 401 的响应必须包含一个适用于被请求资源的 WWW-Authenticate 首部用以质询(challenge)用户信息。当浏览器初次接收到 401 响应,会弹出认证用的对话窗口。402 Payment Required(要求付款)此响应码保留以便将来使用,创造此响应码的最初目的是用于数字支付系统,然而现在并未使用。403 Forbidden(禁止)该状态码表明对请求资源的访问被服务器拒绝了。服务器端没有必要给出拒绝的详细理由,但如果想作说明的话,可以在实体的主体部分对原因进行描述,这样就能让用户看到了。未获得文件系统的访问授权,访问权限出现某些问题(从未授权的发送源 IP 地址试图访问)等列举的情况都可能是发生 403 的原因。404 Not Found(未找到)该状态码表明服务器上无法找到请求的资源。除此之外,也可以在服务器端拒绝请求且不想说明理由时使用。405 Method Not Allowed(不允许使用的方法)请求行中指定的请求方法不能被用于请求相应的资源。该响应必须返回一个 Allow 头信息用以表示出当前资源能够接受的请求方法的列表。鉴于 PUT,DELETE 方法会对服务器上的资源进行写操作,因而绝大部分的网页服务器都不支持或者在默认配置下不允许上述请求方法,对于此类请求均会返回 405 错误。406 Not Acceptable(无法接受)请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体。407 Proxy Authentication Required(要求进行代理认证)与 401 响应类似,只不过客户端必须在代理服务器上进行身份验证。代理服务器必须返回一个 Proxy-Authenticate 用以进行身份询问。客户端可以返回一个 Proxy-Authorization 信息头用以验证。408 Request Timeout(请求超时)请求超时。客户端没有在服务器预备等待的时间内完成一个请求的发送。客户端可以随时再次提交这一请求而无需进行任何更改。409 Conflict(冲突)由于和被请求的资源的当前状态之间存在冲突,请求无法完成。这个代码只允许用在这样的情况下才能被使用:用户被认为能够解决冲突,并且会重新提交新的请求。该响应应当包含足够的信息以便用户发现冲突的源头。410 Gone(消失了)被请求的资源在服务器上已经不再可用,而且没有任何已知的转发地址。这样的状况应当被认为是永久性的。如果可能,拥有链接编辑功能的客户端应当在获得用户许可后删除所有指向这个地址的引用。如果服务器不知道或者无法确定这个状况是否是永久的,那么就应该使用 404 状态码。除非额外说明,否则这个响应是可缓存的。411 Length Required(要求长度指示)服务器拒绝在没有定义 Content-Length 头的情况下接受请求。在添加了表明请求消息体长度的有效 Content-Length 头之后,客户端可以再次提交该请求。412 Precondition Failed(先决条件失败)服务器在验证在请求的头字段中给出先决条件时,没能满足其中的一个或多个。这个状态码允许客户端在获取资源时在请求的元信息(请求头字段数据)中设置先决条件,以此避免该请求方法被应用到其希望的内容以外的资源上。413 Payload Too Large(请求实体太大)服务器拒绝处理当前请求,因为该请求提交的实体数据大小超过了服务器愿意或者能够处理的范围。此种情况下,服务器可以关闭连接以免客户端继续发送此请求。如果这个状况是临时的,服务器应当返回一个 Retry-After 的响应头,以告知客户端可以在多少时间以后重新尝试。414 URI Too Long(请求 URI 太长)请求的 URI 长度超过了服务器能够解释的长度,因此服务器拒绝对该请求提供服务。这比较少见,通常的情况包括:本应使用 POST 方法的表单提交变成了 GET 方法,导致查询字符串(Query String)过长。415 Unsupported Media Type(不支持的媒体类型)对于当前请求的方法和所请求的资源,请求中提交的实体并不是服务器中所支持的格式,因此请求被拒绝。416 Range Not Satisfiable(所请求的范围未得到满足)如果请求中包含了 Range 请求头,并且 Range 中指定的任何数据范围都与当前资源的可用范围不重合,同时请求中又没有定义 If-Range 请求头,那么服务器就应当返回 416 状态码。417 Expectation Failed(无法满足期望)此响应代码意味着服务器无法满足 Expect 请求标头字段指示的期望值。418 I'm a teapot服务器拒绝尝试用 “茶壶冲泡咖啡”。421 Misdirected Request该请求针对的是无法产生响应的服务器。这可以由服务器发送,该服务器未配置为针对包含在请求 URI 中的方案和权限的组合产生响应。422 Unprocessable Entity (WebDAV)请求格式良好,但由于语义错误而无法遵循。423 Locked (WebDAV)正在访问的资源被锁定。424 Failed Dependency (WebDAV)由于先前的请求失败,所以此次请求失败。425 Too Early服务器不愿意冒着风险去处理可能重播的请求。426 Upgrade Required服务器拒绝使用当前协议执行请求,但可能在客户机升级到其他协议后愿意这样做。服务器在 426 响应中发送 Upgrade (en-US) 头以指示所需的协议。428 Precondition Required原始服务器要求该请求是有条件的。旨在防止“丢失更新”问题,即客户端获取资源状态,修改该状态并将其返回服务器,同时第三方修改服务器上的状态,从而导致冲突。429 Too Many Requests用户在给定的时间内发送了太多请求(“限制请求速率”)。431 Request Header Fields Too Large服务器不愿意处理请求,因为它的 请求头字段太大( Request Header Fields Too Large)。请求可以在减小请求头字段的大小后重新提交。451 Unavailable For Legal Reasons用户请求非法资源,例如:由政府审查的网页。5XX 服务端响应500 Internal Server Error(内部服务器错误)该状态码表明服务器端在执行请求时发生了错误。也有可能是 Web 应用存在的 bug 或某些临时的故障。501 Not Implemented(未实现)此请求方法不被服务器支持且无法被处理。只有 GET 和 HEAD 是要求服务器支持的,它们必定不会返回此错误代码。502 Bad Gateway(网关故障)此错误响应表明服务器作为网关需要得到一个处理这个请求的响应,但是得到一个错误的响应。503 Service Unavailable(未提供此服务)该状态码表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。如果事先得知解除以上状况需要的时间,最好写入 RetryAfter 首部字段再返回给客户端。504 Gateway Timeout(网关超时)当服务器作为网关,不能及时得到响应时返回此错误代码。505 HTTP Version Not Supported(不支持的 HTTP 版本)服务器不支持请求中所使用的 HTTP 协议版本。506 Variant Also Negotiates服务器有一个内部配置错误:对请求的透明内容协商导致循环引用。507 Insufficient Storage服务器有内部配置错误:所选的变体资源被配置为参与透明内容协商本身,因此不是协商过程中的适当端点。508 Loop Detected (WebDAV)服务器在处理请求时检测到无限循环。510 Not Extended客户端需要对请求进一步扩展,服务器才能实现它。服务器会回复客户端发出扩展请求所需的所有信息。511 Network Authentication Required511 状态码指示客户端需要进行身份验证才能获得网络访问权限。
2023年05月20日
2 阅读
0 评论
0 点赞
2023-05-20
NAT、端口映射、内网穿透、公网IP都是啥
一、IPv4地址IP协议是为计算机网络相互连接进行通信而设计的协议,它是能使连接到网上的所有计算机网络实现相互通信的一套规则。这里就不详细说IP地址的发展历史、编址方式、分配、管理相关的知识了,因为暂时用不到,只简单聊聊IP地址的分类:共有地址、私有地址。1、公有地址这个比较容易理解,公有地址也就是平时所说的公网IP,有了公网IP,才能拥有被外网中其他设备访问的能力。但是目前运营商是不会给你分配公网IP的,2019年11月25日,所有43亿个IPv4地址已经分配完毕,IPv4地址已经枯竭。当然运营商不给家庭用户分配公网IP已经不是近几年的事情了,随着云计算等技术发展,运营商会更多的把公网IP高价卖给云服务商或者基础设施运营商。当然这样也不是没有好处,家庭宽带躲在运营商层层NAT之下,只要不是闲的没事干,网络范围内爆发的病毒不会找到你家门口。2、私有地址私有地址属于非注册地址,专门为组织机构内部使用。 简单来说,内网中的IP地址就是私有地址,再用不准确的方式来说,从路由器LAN口连接出来的设备的IP地址就是私有地址。最常见的一类就是192.168.0.0-192.168.255.255;另外就是127.0.0.1,这个地址专门用来表示自己,跟windows的"localhost"差不多(两者原理并不相同,涉及要不要经过网卡,这里就不讲了)。百分之九十九的家庭宽带都是内网,而且是层层转发下来的内网,在路由器上查到的WAN口地址是一个运营商级别的更大的内网。这样有什么坏处呢,如果正常上网办公学习没问题,但是涉及到BT下载、做服务器、某些游戏联机等等就会受到很大的约束。二、NAT很早之前我们就听说了IPv4已经不够分配了,全球太多接入互联网的设备了,但是直到今日,我们依然还是在使用IPv4,哪怕IPv6已经铺开了,但是使用率非常之低。为什么IPv4还一直够用呢?因为一个技术,就是NAT。90年代中期,NAT作为一种解决IPv4地址短缺以避免保留IP地址困难的方案而流行起来。其主要的功能就是尽量使同个区域(同一栋楼、同个小区…)的设备使用尽可能少的公网IP,一起共用公网IP,这样就能减少公网IP的消耗。现在所说的NAT其实已经发展为NAPT了,但是为了方便仍然叫做NAT。这里我们举个例子。我们假设有一台路由器公网IP为30.0.0.1,公网中有一台服务器IP地址为60.0.0.1此时路由器后面的A电脑(IP为192.168.1.2)有一个进程,对应的端口号为10999,想要访问B服务器,一个简单的连接是这样的:首先A电脑要告诉B服务器它是谁,B服务器知道访问者的路径之后再把它需要的资源按照这个地址传送回去。A电脑认为自己是192.168.1.2:10999,但是这样显然不对,公网NAT或者路由器的后面有无数个192.168.1.2,B服务器到底要把资源传给谁呢?所以说当A电脑某个进程的发出以192.168.1.2:10999为地址的进程之后,路由器会把这个地址悄咪咪的改成30.0.0.1:xxxxx,这里的xxxxx是路由器随意分配给这个进程的一个端口号,我们假设为10100。这样由于公网地址是唯一的,A电脑就和服务器连接成功开始通讯。B服务器收到请求后,把资源按照30.0.0.1:10100的地址返回给路由器,然后路由器把这个地址转换为192.168.1.2:10999,这样B服务器的资源成功被A电脑获取。这就是一个简单的NAT转换的过程。三、端口映射讲这个之前还是看刚才那个例子。其实当A电脑与B服务器连接结束之后,路由器分配的10100端口自动释放,当服务器再按照30.0.0.1:10100想给A电脑传输数据的时候,因为路由器认为10100是一个无效端口,所以B服务器发来的这个数据包是个无效的数据包。这就出现了一个很有意思的事情:A电脑只能主动向B服务器发送请求,但是B服务器却不能主动向A电脑发送请求,也就是A只能向外发数据,而不能主动接收数据。端口映射应运而生,不如就规定,路由器的10100端口永远留给A电脑的,这样一来,B服务器就可以主动根据30.0.0.1:10100这个地址找到A电脑。这就是端口映射。端口映射有内部端口和外部端口,内部端口就是某个进程的实际端口,比如这里提到的A电脑的10999就是内部端口,用于外网访问的10100就是外部端口。端口映射有个小例子, 比如通过合理的技术手段绕过国内域名解析到国内服务器需要备案的门槛 (这句不要),后面几篇文章会进行介绍。四、内网穿透你以为自己通过端口映射就可供外网访问了?下图:运营商的无限套娃当你想跟小伙伴联机的时候,小伙伴可能也是身处大内网套中内网套小内网的环境下,P2P确实很快,但你们这不是P2P,你们这叫P2222222222P。这时候需要引入中间商,需要一台具有公网IP的服务器,A电脑与服务器进行连接,B电脑也与服务器进行连接,每当A电脑想要访问B电脑时,服务器可以把信息转换给B电脑,这样一来就实现了A与B的通讯。这就是内网穿透的基本概念。这里贴一个小哥的B站视频,讲的挺好。内网穿透肯定也有一定的弊端,那就是A和B的通讯速度会严格受限于中间服务器的带宽,而国内的服务器带宽是非常非常贵的(增加1Mbps每个月费用上涨100元),如果A的家庭宽带是百兆宽带,B是千兆宽带,但是中间服务器的带宽是5M,那么A和B同时传输时理论上每条线路只有2.5M的带宽,短板效应,应该很方便理解。今天大概更这些,之后利用frp进行内网穿透的实际操作。
2023年05月20日
14 阅读
0 评论
0 点赞