精华内容
下载资源
问答
  • Bootstrap介绍和Bootstrap各个版本之间的差异对比。...重点讲解栅格布局这一核心内容对实现响应式布局的支持,配合其他全局样式和组件及插件,让用户在实现响应式布局的同时,得到更加优雅的页面效果。
  • 响应式开发与移动端与PC端分别开发的区别:响应式开发只编写一套界面,通过检测视口分辨率,针对不同客户端在客户端做代码处理,来展现不同的布局和内容。移动端与PC端分别开发,通过检测视口分辨率,来判断当前...

    承蒙各位小伙伴的支持,鄙人有幸入围了《CSDN 2020博客之星》的前200名,现在进入投票环节,如果我平时写的文章和分享对你有用的话,请每天点击一下这个链接,投上你们宝贵的一票吧!谢谢!❤️ 每一票都是我坚持的动力和力量! https://bss.csdn.net/m/topic/blog_star2020/detail?username=qq_23853743  

    作者:AlbertYang,软件设计师,Java工程师,前端工程师,爱阅读,爱思考,爱编程,爱自由,信奉终生学习,每天学习一点点,就是领先的开始。

    微信公众号:AlbertYang 关注我更多精彩等你来发现!

    1 什么是响应式布局?

     响应式布局指的是同一页面在不同屏幕尺寸下有不同的布局。在移动互联网高度发达的今天,我们在桌面浏览器上开发的网页已经无法满足在移动设备上查看的需求。传统的开发方式是PC端开发一套页面,手机端再开发一套页面。但是这样做非常麻烦,随着不同的终端越来越多,你需要开发多个不同版本的页面。而使用响应式布局只要开发一套就够了。EthanMarcotte在2010年5月份提出了响应式布局的概念,简而言之,就是一个网站能够兼容多个终端。

    开发方式移动web开发+PC开发响应式开发
     应用场景一般在已经有PC端的网站,开发移动站的时候,只需单独开发移动端。针对新建站的一些网站,现在要求适配移动端,所以就一套页面兼容各种终端,灵活。
     开发针对性强,开发效率高。兼容各种终端,效率低,
    适配只适配 移动设备,pad上体验相对较差。可以适配各种终端
    效率代码简洁,加载快。代码相对复杂,加载慢。

      响应式开发与移动端与PC端分别开发的区别:响应式开发只编写一套界面,通过检测视口分辨率,针对不同客户端在客户端做代码处理,来展现不同的布局和内容。移动端与PC端分别开发,通过检测视口分辨率,来判断当前访问的设备是pc端、平板、手机, 从而请求服务器,返回不同的页面。

    2 响应式开发的原理?

    响应式开发的原理是使用CSS3中的Media Query(媒体查询)针对不同宽度的设备设置不同的布局和样式,从而适配不同的设备。

    CSS3 @media 查询定义和使用:

    使用 @media 查询,你可以针对不同的媒体类型定义不同的样式。@media 可以针对不同的屏幕尺寸设置不同的样式,特别是如果你需要设置设计响应式的页面,@media 是非常有用的。当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面。

    例如屏幕宽度小于 500 像素则修改背景颜色(background-color)为红色。

    @media screen and (max-width: 300px) {
        body {
            background-color: red;
        }
    }

    设备的划分情况为:

    • 小于768的为超小屏幕(手机)

    • 768~992之间的为小屏设备(平板)

    • 992~1200的中等屏幕(桌面显示器)

    • 大于1200的宽屏设备(大桌面显示器)

    但是我们也可以根据实际情况自己定义划分情况。

    3 响应式页面开发实战

    3.1 视频

    视频地址:https://www.bilibili.com/video/BV1mr4y1T7w5

     

    3.2 HTML

    
    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>响应式页面入门教程:Albert Yang</title>
        <link rel="stylesheet" href="style.css">
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"
            integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
    </head>
    
    <body>
        <header>
            <a href="#" class="logo">AlbertYang</a>
            <ul class="navigation">
                <li><a href="#">首页</a></li>
                <li><a href="#">博客</a></li>
                <li><a href="#">联系我</a></li>
                <li><a href="#">留言板</a></li>
                <li><a href="#">关于我</a></li>
                <li><a href="#">照片墙</a></li>
            </ul>
            <div class="search">
                <input type="text" placeholder="Search">
                <i class="fa fa-search" aria-hidden="true"></i>
            </div>
        </header>
        <div class="banner">
            <div class="content">
                <h2>响应式布局</h2>
                <p>
                    响应式布局指的是同一页面在不同屏幕尺寸下有不同的布局。
                    传统的开发方式是PC端开发一套,手机端再开发一套,而使用响应式布局只要开发一套就够了。
                    响应式设计与自适应设计的区别:响应式开发一套界面,
                    通过检测视口分辨率,针对不同客户端在客户端做代码处理,
                    来展现不同的布局和内容;自适应需要开发多套界面,
                    通过检测视口分辨率,来判断当前访问的设备是pc端、平板、手机,
                    从而请求服务层,返回不同的页面。CSS3媒体查询可以让我们针对不同的媒体类型定义不同的样式,
                    当重置浏览器窗口大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面。
                </p>
                <a href="#">阅读全文</a>
            </div>
            
            <img src="1.jpg" class="image">
        </div>
    </body>
    
    </html>

    3.3 CSS

    /* 清除浏览器默认边距,
    使边框和内边距的值包含在元素的width和height内 */
    * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }
    header {
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 15px 100px;
        z-index: 10;
        background: #5b639c;
    }
    header .logo {
        position: relative;
        font-size: 1.5em;
        color: #fff;
        text-decoration: none;
        font-weight: 600;
    }
    header .navigation {
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        margin: 10px 0;
    }
    header .navigation li {
        list-style: none;
        margin: 0 20px;
    }
    header .navigation li a {
        text-decoration: none;
        color: #fff;
        font-weight: 600;
        letter-spacing: 1px;
    }
    header .navigation li a:hover{
        color: #ffed3b;
    }
    header .search {
        position: relative;
        width: 300px;
        height: 40px;
    }
    header .search input {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        color: #fff;
        background: transparent;
        outline: none;
        border: 1px solid #fff;
        border-radius: 5px;
        padding: 0 10px 0 45px;
    }
    header .search input::placeholder {
        color: #fff;
    }
    header .search .fa-search {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        left: 10px;
        color: #fff;
        border-right: 1px solid #fff;
        padding-right: 10px;
    }
    .banner {
        background: #eee;
        padding: 200px 100px 100px;
        min-height: 100vh;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    .banner .content {
        max-width: 1000px;
    }
    .banner .content h2 {
        font-size: 2.5em;
        color: #333;
        margin-bottom: 20px;
    }
    .banner .content p {
        font-size: 1em;
        color: #333;
    }
    .banner .content a {
        display: inline-block;
        background: #434978;
        color: #fff;
        padding: 10px 20px;
        text-decoration: none;
        font-weight: 600;
        margin-top: 20px;
    }
    .banner .image {
        max-width: 500px;
        margin-left: 50px;
    }
    /*屏幕宽度小于991px,改变布局和样式*/
    @media screen and (max-width:991px) {
        header {
            padding: 10px 20px;
            flex-direction: column;
        }
        .banner {
            padding: 150px 20px 50px;
            flex-direction: column-reverse;
        }
        .banner .image {
            max-width: 80%;
            margin-left: 0;
        }
        .banner .content h2 {
            font-size: 2em;
        }
    }
    /*屏幕宽度小于600px,改变布局和样式*/
    @media screen and (max-width:600px) {
        header .search {
            width: 100%;
        }
        .banner .image {
            margin-top: 30px;
        }
    }

    3.4 图片

    今天的学习就到这里了,由于本人能力和知识有限,如果有写的不对的地方,还请各位大佬批评指正。有什么不明白的地方欢迎给我留言,如果想继续学习提高,欢迎关注我,每天进步一点点,就是领先的开始,加油。如果觉得本文对你有帮助的话,欢迎转发,评论,点赞!!!

     

    展开全文
  •  好了,关于 CentOS7虚拟机启动无响应,VMware虚拟机启动黑屏无响应,VMware中启动虚拟机黑屏无响应的解决办法 就写到这儿了,如果还有什么疑问或遇到什么问题欢迎扫码提问,也可以给我留言哦,我会一一详细的...

    问题概述

    在一台新的服务器上(Windows10版本的系统),安装VMware后,在里面新增CentOS7虚拟机,安装完成后,一直启动不起来,还以为机器的问题,等了老半天还是启动不起来,然后换其它以前使用过的VMware的服务器又是可以启动的。。。

    如下图:

     

     

     

    解决办法

    倒腾了半天,这儿把解决办法记录一下,通过Windows下的 “ netsh ” 脚本命令重置一下 “ Winsock ”目录就可以了,

    以管理员身份启动CMD命令窗口,并输入命令 “ netsh winsock reset ”,重置成功,如下图:

    接下来重启一下服务器(或者本地计算机)就可以了,虚拟机成功启动后:

     

     

     

     


     好了,关于 CentOS7虚拟机启动无响应,VMware虚拟机启动黑屏无响应,VMware中启动虚拟机黑屏无响应的解决办法  就写到这儿了,如果还有什么疑问或遇到什么问题欢迎扫码提问,也可以给我留言哦,我会一一详细的解答的。 
    歇后语:“ 共同学习,共同进步 ”,也希望大家多多关注CSND的IT社区。


    作       者:华    仔
    联系作者:who.seek.me@java98k.vip
    来        源:CSDN (Chinese Software Developer Network)
    原        文:https://blog.csdn.net/Hello_World_QWP/article/details/101215306
    版权声明:本文为博主原创文章,请在转载时务必注明博文出处!
    展开全文
  • 命令式编程与响应式编程 消息驱动 观察者模式 Tomcat的NIO异步网络io 服务器推技术 Servlet3.0与3.1 本节内容 响应式系统主流框架概览 akka 使用Scala语言开发,后期支持Java,但是在Java社区并不如从前受欢迎 ...

    上节回顾

    • 同步与异步
    • 命令式编程与响应式编程
    • 消息驱动
    • 观察者模式
    • Tomcat的NIO异步网络io
    • 服务器推技术
    • Servlet3.0与3.1

    本节内容

    响应式系统主流框架概览

    • akka

    使用Scala语言开发,后期支持Java,但是在Java社区并不如从前受欢迎

    • Vert.x

    Vert.x是Eclipse发行的开源项目,设计初衷是作为Node.js在Java虚拟机上的替代方法,支持非阻塞和事件驱动,在近几年开始受大家关注

    • Project Reactor

    Spring5中默认引入的响应式编程机制,出现的比较晚,所以也吸收了前辈的经验。

    • RxJava

    ReactiveExtensions,早起应用于.net平台

    微服务内部中的响应式

    我们把响应式开发拆分为两个阶段:

    SpringCloud:前面Controller接入用户请求,内部用Rest进行远程调用,维护了一个线程池(可以受Hytrix保护),去调用远端的服务并阻塞等待返回结果,然后再执行自己后面的业务逻辑,最后返回给用户。这是传统的“命令式编程”
    在这里插入图片描述
    controller是单例、多线程:每一个用户请求进来,就创建一个业务线程。

    阻塞式的
    阻塞
    响应式的
    单一职责原则
    在响应式的模型中,用户请求和业务线程就不是一对一的了,处理每一个业务的线程只做自己的事情,可以通过事件驱动的机制,达到线程复用,提高系统性能,适合IO密集度比较高的情况下。

    在这里插入图片描述
    雪崩效应
    雪崩效应形成的原因,是因为不断的重试导致的资源的耗尽。第一次请求没成功返回,耗时很长,后来的请求又来了,造成了请求的积压,所有的请求都没有完成。一个服务不通了,后面的连锁式的反应,导致整个链路不可用,这就是雪崩。

    资源隔离,舱壁模式
    解决的是一个服务在调用另外一个服务的时候,会从线程池里拿一个线程回来,发起一个异步调用,如果服务挂了,线程内部就报错了。调不通会产生请求的延迟,需要更长的时间才能返回成功或失败。如果服务B的线程池里的线程都被拿去进行调用了,没有关系,服务C有他自己的线程池,一边满了不影响另一边的线程池,这就是Hytrix实现的舱壁隔离。
    在这里插入图片描述

    如果按照新的思路,只关心事件,而不关心结果,你爱通不通,不通待会儿再重新调用,这样就不会存在雪崩的问题了。
    在这里插入图片描述
    服务之间的边界清晰的时候,你可以用MQ
    如果需要复用,比如我在调用远程服务的时候,存图的服务和存数据库的服务都是远程异步调用的。
    如果存图耗时比较长,你可以在存图的时候加一个MQ,反正客户端不需要等待存图的结果。
    而对于用户名是否重复的判断,(可能有两个人同时想要使用一个id的时候是不行的),你需要拿存储结果,你可以使用响应式编程
    边界

    什么时候需要事件驱动,什么时候不需要事件驱动?
    一般微服务里面不用这个。两个服务如果响应时间很快,就没有必要再事件驱动了,毕竟中间要增加一个环节。
    即使是雪崩问题,也可以使用Hystrix进行快速失败,解决雪崩问题。
    这套技术从14 15年就有了,Node.js也是这套东西,因为之前已经有了解决方案,引入新方案会有新的隐患,所以为啥要用它呢

    富客户端
    富因特网应用程序(Rich Internet Applications,RIA)利用具有很强交互性的富客户端技术来为用户提供一个更高和更全方位的网络体验。

    基于TCP连接的一套实现方案:服务器有什么消息,直接推送给我。是一种全双工的交互方式
    在这里插入图片描述
    轮询、长轮询、SSE

    http默认能挂起90秒,比如你可以用sleep,超过90秒需要续租,这是可以用js实现的
    在这里插入图片描述
    h5的特性:websocket是浏览器实现的,ws://开头的协议

    mime 类型不同,浏览器消费方式不同

    有时间看看:浏览器下载文件用的是什么协议?计算机网络 谢希仁 应用层那一张

    在这里插入图片描述
    响应式web的特点:
    在这里插入图片描述
    啥是背压?解决方案?
    在数据流从上游生产者向下游消费者传输的过程中,上游生产速度大于下游消费速度,导致下游的 Buffer 溢出,这种现象就叫做 Backpressure 出现
    如何减少堆积?限流算法,或者增加机器,或者改为主动去取

    代码示例

    类似于一个聊天室

    package com.mashibing.admin;
    
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
    
    import java.io.IOException;
    import java.util.Map;
    import java.util.concurrent.ConcurrentHashMap;
    
    @RestController
    @RequestMapping(path = "/sse")
    public class SseRest {
    
        private static Map<String, SseEmitter> sseCache = new ConcurrentHashMap<>();
    
        @GetMapping(path = "/subscribe")
        public SseEmitter subscribe(String id) {
            // 超时时间设置为1小时
            SseEmitter sseEmitter = new SseEmitter(3600000L);
            sseCache.put(id, sseEmitter);
            // 超时回调 触发
            sseEmitter.onTimeout(() -> sseCache.remove(id));
            // 结束之后的回调触发
            sseEmitter.onCompletion(() -> System.out.println("完成!!!"));
            return sseEmitter;
        }
    
        @GetMapping(path = "/push")
        public String push(String id, String content) throws IOException {
            SseEmitter sseEmitter = sseCache.get(id);
            if (sseEmitter != null) {
                // 发送消息
                sseEmitter.send(content);
            }
            return "over";
        }
    
        @GetMapping(path = "over")
        public String over(String id) {
            SseEmitter sseEmitter = sseCache.get(id);
            if (sseEmitter != null) {
                // 执行完毕,断开连接
                sseEmitter.complete();
                sseCache.remove(id);
            }
            return "over";
        }
    
        @GetMapping(path = "/push-all")
        public String pushAll(String content) throws IOException {
            for (String s : sseCache.keySet()) {
                SseEmitter sseEmitter = sseCache.get(s);
                if (sseEmitter != null) {
                    // 发送消息
                    sseEmitter.send(content);
                }
            }
    
            return "over";
        }
    }
    

    user1.html

    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8"> <!-- for HTML5 -->
    
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Sse测试文档</title>
    </head>
    <body>
    <div>sse 测试</div>
    <div id="result"></div>
    </body>
    </html>
    <script>
        var source = new EventSource('http://localhost/sse/subscribe?id=user1');
        source.onmessage = function (event) {
            text = document.getElementById('result').innerText;
            text += '\n' + event.data;
            document.getElementById('result').innerText = text;
        };
        <!-- 添加一个开启回调 -->
        source.onopen = function (event) {
            text = document.getElementById('result').innerText;
            text += '\n 开启: ';
            console.log(event);
            document.getElementById('result').innerText = text;
        };
    </script>
    

    响应式web应用场景

    ajax是只能拉,websocket是全双工,有状态连接,可以推可以拉,可以发送二进制数据,websocket写起来比较麻烦一些。
    sse(server sent event)是单向的,是ws的一半,是无状态连接,适合比如股票行情展示,只能服务器给客户端推
    在这里插入图片描述
    下节课我们讲 Reactor,啥叫Flux,Mono,啥叫WebFlux

    响应式宣言

    官方自带中文文档:

    https://www.reactivemanifesto.org/zh-CN
    在这里插入图片描述

    响应式系统的特点:即时响应性(Responsive)、回弹性(Resilient)、弹性(Elastic)以及消息驱动(Message Driven)

    即时响应性:

    只要有可能, 系统就会及时地做出响应。 即时响应是可用性和实用性的基石, 而更加重要的是,即时响应意味着可以快速地检测到问题并且有效地对其进行处理。 即时响应的系统专注于提供快速而一致的响应时间, 确立可靠的反馈上限, 以提供一致的服务质量。 这种一致的行为转而将简化错误处理、 建立最终用户的信任并促使用户与系统作进一步的互动。

    回弹性:

    系统在出现失败时依然保持即时响应性。 这不仅适用于高可用的、 任务关键型系统——任何不具备回弹性的系统都将会在发生失败之后丢失即时响应性。 回弹性是通过复制、 遏制、 隔离以及委托来实现的。 失败的扩散被遏制在了每个组件内部, 与其他组件相互隔离, 从而确保系统某部分的失败不会危及整个系统,并能独立恢复。 每个组件的恢复都被委托给了另一个(外部的)组件, 此外,在必要时可以通过复制来保证高可用性。 (因此)组件的客户端不再承担组件失败的处理。

    弹性:

    系统在不断变化的工作负载之下依然保持即时响应性。 反应式系统可以对输入(负载)的速率变化做出反应,比如通过增加或者减少被分配用于服务这些输入(负载)的资源。 这意味着设计上并没有争用点和中央瓶颈, 得以进行组件的分片或者复制, 并在它们之间分布输入(负载)。 通过提供相关的实时性能指标, 反应式系统能支持预测式以及反应式的伸缩算法。 这些系统可以在常规的硬件以及软件平台上实现成本高效的弹性。

    消息驱动:

    反应式系统依赖异步的消息传递,从而确保了松耦合、隔离、位置透明的组件之间有着明确边界。 这一边界还提供了将失败作为消息委托出去的手段。 使用显式的消息传递,可以通过在系统中塑造并监视消息流队列, 并在必要时应用回压, 从而实现负载管理、 弹性以及流量控制。 使用位置透明的消息传递作为通信的手段, 使得跨集群或者在单个主机中使用相同的结构成分和语义来管理失败成为了可能。 非阻塞的通信使得接收者可以只在活动时才消耗资源, 从而减少系统开销。


    响应式系统的应用场景

    • 电商中的响应式
    • 富客户端(Gmail、qq邮箱)
    • 系统通知
    • 股市K线
    • 聊天室

    希望上完所有课程,你可以:

    • 了解响应式编程,对WebFlux有实战开发经验

    拓展:P2P

    在这里插入图片描述
    P2P:默克尔树,树形结构,种子里存的是Hash值、节点服务器的地址,通过中央节点提供节点之间的相互发现,如果没有中间节点的话,需要广播(UDP)才行。广播地址是互相找的,节点到节点之间怎么找?可以找服务器去找,可以广播。连接之后开始传文件,我想要共享文件,首先文件会被分为固定块大小。种子文件里有个固定的Hash,分为top hash和子hash

    下载到最后会回退的原因:块被篡改了,找不到合适的块。可能由于恶意篡改,或者网路传输中的丢包。

    在这里插入图片描述

    展开全文
  • HTTP 响应代码全集

    千次阅读 多人点赞 2019-10-15 15:01:20
    响应分为五类:信息响应(100–199),成功响应(200–299),重定向(300–399),客户端错误(400–499)和服务器错误(500–599)。状态代码由section 10 of RFC 2616定义 信息响应 100 Continue 这个临时响应表明,...

    HTTP 响应状态代码指示特定 http 请求是否已成功完成。响应分为五类:信息响应(100–199),成功响应(200–299),重定向(300–399),客户端错误(400–499)和服务器错误 (500–599)。状态代码由 section 10 of RFC 2616定义

     

    信息响应

    100 Continue

     

    这个临时响应表明,迄今为止的所有内容都是可行的,客户端应该继续请求,如果已经完成,则忽略它。

     

    101 Switching Protocol

     

    该代码是响应客户端的 Upgrade 标头发送的,并且指示服务器也正在切换的协议。

     

    102 Processing (WebDAV)

     

    此代码表示服务器已收到并正在处理该请求,但没有响应可用。

     

    103 Early Hints 

     

    此状态代码主要用于与Link 链接头一起使用,以允许用户代理在服务器仍在准备响应时开始预加载资源。

     

    成功响应

    200 OK

     

    请求成功。成功的含义取决于HTTP方法:

     

    GET:资源已被提取并在消息正文中传输。

    HEAD:实体标头位于消息正文中。

    POST:描述动作结果的资源在消息体中传输。

    TRACE:消息正文包含服务器收到的请求消息

    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 请求。类似于 FlashGet 或者迅雷这类的 HTTP 下载工具都是使用此类响应实现断点续传或者将一个大文档分解为多个下载段同时下载。该请求必须包含 Range 头信息来指示客户端希望得到的内容范围,并且可能包含 If-Range 来作为请求条件。

     

    207 Multi-Status (WebDAV)

     

    由WebDAV(RFC 2518)扩展的状态码,代表之后的消息体将是一个XML消息,并且可能依照之前子请求数量的不同,包含一系列独立的响应代码。

     

    208 Multi-Status (WebDAV)

     

    在 DAV 里面使用: propstat 响应元素以避免重复枚举多个绑定的内部成员到同一个集合。

     

    226 IM Used (HTTP Delta encoding)

     

    服务器已经完成了对资源的 GET 请求,并且响应是对当前实例应用的一个或多个实例操作结果的表示。

     

    重定向

    300 Multiple Choice

     

    被请求的资源有一系列可供选择的回馈信息,每个都有自己特定的地址和浏览器驱动的商议信息。用户或浏览器能够自行选择一个首选的地址进行重定向。

     

    301 Moved Permanently

     

    被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个 URI 之一。如果可能,拥有链接编辑功能的客户端应当自动把请求的地址修改为从服务器反馈回来的地址。除非额外指定,否则这个响应也是可缓存的。

     

    302 Found

     

    请求的资源现在临时从不同的 URI 响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。

     

    303 See Other

     

    对应当前请求的响应可以在另一个 URI 上被找到,而且客户端应当采用 GET 的方式访问那个资源。这个方法的存在主要是为了允许由脚本激活的POST请求输出重定向到一个新的资源。

     

    304 Not Modified

     

    如果客户端发送了一个带条件的 GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个状态码。304 响应禁止包含消息体,因此始终以消息头后的第一个空行结尾。

     

    305 Use Proxy 

     

    被请求的资源必须通过指定的代理才能被访问。Location 域中将给出指定的代理所在的 URI 信息,接收者需要重复发送一个单独的请求,通过这个代理才能访问相应资源。只有原始服务器才能建立305响应。

     

    306 unused

     

    在最新版的规范中,306 状态码已经不再被使用。

     

    307 Temporary Redirect

     

    请求的资源现在临时从不同的URI 响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。

     

    308 Permanent Redirect

     

    这意味着资源现在永久位于由 Location: HTTP Response 标头指定的另一个 URI。 这与 301 Moved Permanently HTTP 响应代码具有相同的语义,但用户代理不能更改所使用的 HTTP 方法:如果在第一个请求中使用 POST,则必须在第二个请求中使用 POST。

     

    客户端响应

    400 Bad Request

     

    1、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。

     

    2、请求参数有误。

     

    401 Unauthorized

     

    当前请求需要用户验证。该响应必须包含一个适用于被请求资源的 WWW-Authenticate 信息头用以询问用户信息。客户端可以重复提交一个包含恰当的 Authorization 头信息的请求。如果当前请求已经包含了 Authorization 证书,那么401响应代表着服务器验证已经拒绝了那些证书。如果401响应包含了与前一个响应相同的身份验证询问,且浏览器已经至少尝试了一次验证,那么浏览器应当向用户展示响应中包含的实体信息,因为这个实体信息中可能包含了相关诊断信息。

     

    402 Payment Required

     

    此响应码保留以便将来使用,创造此响应码的最初目的是用于数字支付系统,然而现在并未使用。

     

    403 Forbidden

     

    服务器已经理解请求,但是拒绝执行它。与 401 响应不同的是,身份验证并不能提供任何帮助,而且这个请求也不应该被重复提交。如果这不是一个 HEAD 请求,而且服务器希望能够讲清楚为何请求不能被执行,那么就应该在实体内描述拒绝的原因。当然服务器也可以返回一个 404 响应,假如它不希望让客户端获得任何信息。

     

    404 Not Found

     

    请求失败,请求所希望得到的资源未被在服务器上发现。没有信息能够告诉用户这个状况到底是暂时的还是永久的。假如服务器知道情况的话,应当使用410状态码来告知旧资源因为某些内部的配置机制问题,已经永久的不可用,而且没有任何可以跳转的地址。404这个状态码被广泛应用于当服务器不想揭示到底为何请求被拒绝或者没有其他适合的响应可用的情况下。

     

    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 长度超过了服务器能够解释的长度,因此服务器拒绝对该请求提供服务。这比较少见,通常的情况包括:本应使用POST方法的表单提交变成了GET方法,导致查询字符串(Query String)过长。

     

    415 Unsupported Media Type

     

    对于当前请求的方法和所请求的资源,请求中提交的实体并不是服务器中所支持的格式,因此请求被拒绝。

     

    416 Requested 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 头以指示所需的协议。

     

    428 Precondition Required

     

    原始服务器要求该请求是有条件的。 旨在防止“丢失更新”问题,即客户端获取资源状态,修改该状态并将其返回服务器,同时第三方修改服务器上的状态,从而导致冲突。

     

    429 Too Many Requests

     

    用户在给定的时间内发送了太多请求(“限制请求速率”)。

     

    431 Request Header Fields Too Large

     

    服务器不愿意处理请求,因为它的 请求头字段太大( Request Header Fields Too Large)。 请求可以在减小请求头字段的大小后重新提交。

     

    451 Unavailable For Legal Reasons

     

    用户请求非法资源,例如:由政府审查的网页。

     

    服务端响应

    500 Internal Server Error

     

    服务器遇到了不知道如何处理的情况。

     

    501 Not Implemented

     

    此请求方法不被服务器支持且无法被处理。只有GET和HEAD是要求服务器支持的,它们必定不会返回此错误代码。

     

    502 Bad Gateway

     

    此错误响应表明服务器作为网关需要得到一个处理这个请求的响应,但是得到一个错误的响应。

     

    503 Service Unavailable

     

    服务器没有准备好处理请求。 常见原因是服务器因维护或重载而停机。 请注意,与此响应一起,应发送解释问题的用户友好页面。 这个响应应该用于临时条件和 Retry-After:如果可能的话,HTTP头应该包含恢复服务之前的估计时间。 网站管理员还必须注意与此响应一起发送的与缓存相关的标头,因为这些临时条件响应通常不应被缓存。

     

    504 Gateway Timeout

     

    当服务器作为网关,不能及时得到响应时返回此错误代码。

     

    505 HTTP Version Not Supported

     

    服务器不支持请求中所使用的HTTP协议版本。

     

    506 Variant Also Negotiates

     

    服务器有一个内部配置错误:对请求的透明内容协商导致循环引用。

     

    507 Insufficient Storage

     

    服务器有内部配置错误:所选的变体资源被配置为参与透明内容协商本身,因此不是协商过程中的适当端点。

     

    508 Loop Detected (WebDAV)

     

    服务器在处理请求时检测到无限循环。

     

    510 Not Extended

     

    客户端需要对请求进一步扩展,服务器才能实现它。服务器会回复客户端发出扩展请求所需的所有信息。

     

    511 Network Authentication Required

     

    511 状态码指示客户端需要进行身份验证才能获得网络访问权限。

    展开全文
  • ①手动去设置HTTP响应行中的状态码,这里用到了response的setStatus(int sc);这个方法 package com . itheima . line ; import java . io . IOException ; import javax . servlet . ServletException ; ...
  • 零输入响应与零状态响应响应

    万次阅读 多人点赞 2020-07-13 02:08:53
    零输入响应与零状态响应零输入响应与零状态响应1、 零输入响应2、零状态响应3、两种响应的区别4、两种响应的判断方法5、两种响应的求解方法6、两种响应之间的联系 零输入响应与零状态响应 这两个响应在大学的电路中...
  • 使用Stata做脉冲响应分析

    万次阅读 多人点赞 2019-04-25 21:20:42
    在这篇推文中,我们讨论 VAR 模型中的脉冲响应函数(IRFs)。 脉冲响应函数反映了当 VAR 模型某个变量受到"外生冲击"时,模型中其他变量受到的动态影响。我们会根据这些变量受到此冲击后的一段时间内的动态变化画出...
  • 在发送请求后,服务器会返回一个响应内容,而且requests通常会自动解码响应内容 1.文本响应内容 获取文本类型的响应内容 r = requests.get('https://www.baidu.com') r.text # 通过文本的形式获取响应内容 '<!...
  • 零输入响应,零状态响应和完全响应

    万次阅读 多人点赞 2019-04-10 19:44:56
    零输入响应 无信号作用,由初始时刻的储能所产生的响应。即没有独立电源接入,而由电容或电感充当电源。通常为电容或电感达到稳态后断开独立电源与支路的连接。俗称放电 以下给出电容电压状态随时间的推导(RC电路...
  • 响应式编程

    千次阅读 2019-05-07 15:26:39
    我们先来聊一聊响应式的由来,对于它的由来,我们可能需要先从一段常见的代码片段看起 int a=1; int b=a+1; System.out.print(“b=”+b) // b=2 a=10; System.out.print(“b=”+b) // b=2 上面是一段很...
  • HTML5+CSS3响应式垂直时间轴,没有用js。挺好看的,分享给大家
  • 阶跃响应与冲激响应

    千次阅读 2020-12-04 16:52:03
    1. 阶跃响应 (1)一阶电路 (2)二阶电路 2. 冲激响应 (1)一阶电路 (2)二阶电路
  • 【摘要】文章设计了一个数字信号处理仿真实验,产生一个信号,其频率成分为f1和f2,并对其进行理想采样,采样频率为...并设计有限冲激响应(FIR)滤波器和无限冲激响应(IIR)滤波器将信号分离为仅有f1或f2的正弦信号。
  • 事件响应步骤:安全响应的6个步骤

    千次阅读 2020-10-21 10:05:55
    无论您的组织规模大小,您都应该拥有一支训练有素的事件响应团队,负责在事件发生时立即采取行动。请继续阅读以学习一个六步过程,该过程可以帮助您的事件响应者在警报响起时更快,更有效地采取措施。 在本文中,您...
  • (1)什么是响应式编程——响应式Spring的道法术器

    万次阅读 多人点赞 2018-03-06 10:54:22
    本系列其他文章见:《响应式Spring的道法术器》。 响应式编程之道 1.1 什么是响应式编程? 在开始讨论响应式编程(Reactive Programming)之前,先来看一个我们经常使用的一款堪称“响应式典范”的强大的生产...
  • 实验1 系统响应及系统稳定性

    千次阅读 多人点赞 2020-10-22 12:43:18
    实验1系统响应及系统稳定性 实验安全规则(本实验项目安全注意事项) 数字信号处理及DSP应用实验在计算机Matlab上用仿真方式完成,不需要硬件设备,请不要开启计算机桌台上的其它硬件设备; 实验可以一人一机单独...
  • 一文搞懂: 响应式编程是什么?

    千次阅读 2021-01-10 16:09:15
    当一个系统具有即时响应性(Responsive)、回弹性(Resilient)、弹性(Elastic)以及消息驱动(Message Driven)。 我们称这样的系统为反应式系统(Reactive System)。
  • 根据(式10)可知,只要特征根的实部,也即传函的极点,那么系统在时域的自由响应一定会趋于0,我们把这种情况下的自由响应称为“瞬态响应”,需要注意的是,虽然自由响应会趋于0,但是由于总响应=自由响应+强迫...
  • 响应式web设计html5和css3实战 源代码

    热门讨论 2015-02-13 10:20:00
    响应式web设计html5和css3实战 源代码 绝对一手!
  • 求系统的冲击响应和阶跃响应

    千次阅读 2020-04-25 20:25:11
    冲击函数只有在时候才有非零值,其余时间值均为零,对于时刻来讲,系统并没有任何输入,因此系统方程的受迫响应部分为零,只有自由响应,也就是说系统的齐次解就是系统的冲击响应完全解。 然而求系统方程的齐次解,...
  • 结构可靠性分析中响应面方法的基本思想

    千次阅读 多人点赞 2019-05-28 16:38:39
    本文主要介绍了响应面法的主要组成部分,及其局限性
  • iOS 事件传递&响应

    千次阅读 2019-05-18 17:27:26
    iOS的事件响应机制 一个触摸事件的响应过程如下: 用户触摸屏幕时,UIKit会生成UIEvent对象来描述触摸事件。对象内部包含了触摸点坐标等信息。 通过Hit Test确定用户触摸的是哪一个UIView。这个步骤通过- ...
  • 响应式网页设计

    千次阅读 2019-05-24 15:49:36
    什么是响应式网页设计? 响应式网页设计使您的网页在所有设备上都很好看。 响应式网页设计仅使用HTML和CSS。 响应式网页设计不是程序或JavaScript。 为所有用户设计最佳体验 可以使用许多不同的设备查看网页:...
  • 单位脉冲响应、单位阶跃响应的作用?

    千次阅读 多人点赞 2019-12-02 17:18:37
    注: 连续脉冲响应,道理上和离散的差不多,拿连续脉冲讲的话一是图不好画,二是比较要命的连续脉冲响应还不是个正常函数,所以使用离散来讲了. 下面是硬广: 北京招聘音频信号处理方向人士,有意向可联系我.
  • 现在, Java 的各种基于 Reactor 模型的响应式编程库或者框架越来越多了,像是 RxJava,Project Reactor,Vert.x 等等等等。在 Java 9, Java 也引入了自己的 响应式编程的一种标准接口,即java.util.concurrent....
  • 20+免费精美响应式Html5 网站模板01(含源码)

    千次阅读 多人点赞 2021-06-02 09:41:20
    今天花了几个小时的时间整理了一些响应式网站模板,代码下载方式放在了文章末尾,有什么问题可以私信我或者评论区留言,此文章为系列文章,后面还会继续更新网站模板0203等等
  • http协议与响应请求原理

    万次阅读 多人点赞 2021-10-05 00:15:23
    文章目录一、HTTP协议简介二、HTTP请求三、HTTP响应四、HTTP请求方法五、HTTP响应状态代码 一、HTTP协议简介 二、HTTP请求 三、HTTP响应 四、HTTP请求方法 五、HTTP响应状态代码
  • 统一诊断服务否定响应码的判定适用所有诊断服务的NRC及其优先级适用于带子功能参数的诊断服务的NRC及其优先级ISO14229-1中做了具体的NRC判断逻辑描述的诊断服务的NRC优先级通过ID写入数据服务(WriteDataByIdentifier...
  • iOS响应者链彻底掌握

    千次阅读 2018-07-13 16:35:36
    iOS响应者链(Responder Chain)是支撑App界面交互的重要基础,点击、滑动、旋转、摇晃等都离不开其背后的响应者链,所以每个iOS开发人员都应该彻底掌握响应者链的响应逻辑,本文旨在通过demo测试的方式展现响应者链的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,421,074
精华内容 968,429
关键字:

响应