—————————————————————————————————————————
*** 响应的数据格式 
HTTP/1.1 200 OK 
Server: Apache-Coyote/1.1 
Accept-Ranges: bytes 
ETag: W/"27-1432777730225" 
Last-Modified: Thu, 28 May 2015 01:48:50 GMT 
Content-Type: text/html 
Content-Length: 27 
Date: Thu, 28 May 2015 07:03:37 GMT
 
* HTTP/1.0 和 HTTP/1.1区别
** 使用telnet命令,分别 操作这两个版本的HTTP
*** 使用HTTP/1.0,如果做出响应立刻断开连接
*** 使用HTTP/1.1,做出了响应之后不会立刻断开
 
 
* http协议的请求三部分组成:
    ** 第一部分:请求行
        ** 请求行里面包含:请求方式、请求地址、http版本
    ** 第二部分:请求头
        ** 类似key-value形式,一个key可以对应一个value,也可以对应多个value
        ** 三个重要的请求头
        *** Referer:防盗链,得到当前请求的地址
 
        **** 创建两个文件夹 my  和 other
        **** 分别创建两个页面 my.html  other.html
        ***** 只能是my文件夹里面的文件才可以访问
        ***** 只有my文件夹里面的文件才可以访问servlet
 
        *** User-Agent:获取当前请求的浏览器的信息
 
        *** If-Modified-Since:经常和响应里面Last-Modified一起使用,用于查询本地缓存
 
    ** 第三部分:请求体
        ** 通过post提交的数据 user=lisi
 
    ** 表单提交的方式有很多种,常用的两种 get和post
 
    ** Accept: text/html,image/*                                                            客户端识别文件类型  
    Accept-Charset: ISO-8859-1                                                             客户端字符集
    Accept-Encoding: gzip                                                                      客户端支持编码类型 gzip 压缩格式
    Accept-Language:zh-cn                                                                    客户端语言
    Host: www.itcast.com:80                                                                   访问服务器地址
    If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT                          (重要) 和Last-Modified 一起使用 控制缓存
    Referer: http://www.itcast.com/index.jsp                                        (重要) 防止盗链
    User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)   浏览器类型(文件下载时,不同浏览器进行不同处理)
    Connection: close/Keep-Alive                                                           请求后连接是关闭还是保持
    Date: Tue, 11 Jul 2000 18:23:51 GMT                                                请求时间
 
 
* http协议的响应有三部分组成:
    ** 第一部分:响应行
        ** 结构:http版本、状态码 、状态码描述
        ** 状态码:当前的响应的状态
 
        *** 常见的状态码
                * 200:成功 ok
                * 302:重定向
                * 304:查找本地缓存
                * 404:资源找不到
                * 500:服务器内部错误(代码写错了)
                * 503:服务器挂了
 
    ** 第二部分:响应头
        ** 类似key value形式,一个key可以有一个或者多个value
        *** 三个重要的响应头信息
        * Location
            ** 经常和302一起实现重定向的操作
            * 代码
            //重定向使用状态码 302
            response.setStatus(302);
            //设置头信息 Location 完成重定向的操作
            response.setHeader("Location", "/day07/my/my.html");
 
        * Refresh
            ** 在页面的定时跳转
            ** 代码
            response.getWriter().write("页面将在3秒之后跳转..");
            //使用Refresh头信息实现定时跳转
            response.setHeader("Refresh", "3;url=/day07/other/other.html");
 
        * Last-Modified:
            ** 经常请求里面If-Modified-Since一起使用查找本地缓存
 
        * Content-Disposition:做文件下载时候
        *** 禁用浏览器缓存
        * Expires: -1
        Cache-Control: no-cache  
        Pragma: no-cache   
 
    ** 第三部分:响应体
        ** 显示到页面上的内容
 
    ** 重定向和转发区别
    *** 在一个请求里面,又做了一次请求
    ** 重定向:比如找小文借钱10万,小文没有钱,告诉我小温有钱,我再去找小温,把钱拿到
    *** 请求两次,响应两次
 
    ** 转发:比如找张三借钱,但是张三没有钱,张三去帮我找李四借钱,最终把钱给我
    *** 请求一次,响应一次
 
——————————————————————————————————————————————————————————————————————
 
 
 
 
 
 
Springboot 构建http服务,返回的http行是'HTTP/1.1 200'而非'HTTP/1.1 200 OK'
 
 
从Springboot 1.4.0以上版本就有这个问题
 
准确的说应该是tomcat的版本升级了。 http/1.1协议里 ok是被括号的。也就是可以有可以无。
客户端应该要兼容这种
可以降低springbot内置tomcat版本号的方式
 
1、解析Spring Boot父级依赖
 
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
</parent>
 
这块配置就是Spring Boot父级依赖,有了这个,当前的项目就是Spring Boot项目了,spring-boot-starter-parent是一个特殊的starter,它用来提供相关的Maven默认依赖,使用它之后,常用的包依赖可以省去version标签。关于Spring Boot提供了哪些jar包的依赖,可查看C:\Users\用户.m2\repository\org\springframework\boot\spring-boot-dependencies\1.5.1.RELEASE\spring-boot-dependencies-1.5.1.RELEASE.pom
 2、打开这个pom文件,搜索“tomcat.version” 会找到:<tomcat.version>8.5.16</tomcat.version>
    ①可以直接在这里修改你想要的tomcat版本
    ②在你自己的项目的pom里面添加版本,就可以直接覆盖这里的版本了。如:
Pom中tomcat版本配置代码 
 
?
<properties>
  <tomcat.version>8.0.29</tomcat.version>
</properties> 
 添加这个之后,spingboot的默认启动的tomcat版本就可以达到你自己需要的了。到这里基本就完成了。
  但是有时候启动会报错:
Tomcat启动报错代码 
 
Caused by: java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory
at org.apache.catalina.util.LifecycleBase.<clinit>(LifecycleBase.java:37)
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:169)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:164)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:134)
... 13 common frames omitted
因为这个时候的tocmat缺少jar包,maven项目的话加上下面这个依赖就好了:
 
安卓调用方法
 
底层返回null C++直接空指针了
 

 

Springboot 构建http服务,返回的http行是'HTTP/1.1 200' 无状态码描述 客户端解析错误的更多相关文章

  1. 使用SpringBoot构建REST服务-什么是REST服务

    前言: 本文按照Spring官网构建REST服务的步骤测试,可以得到结论: 到底什么样的风格才是RESTful风格呢? 1,约束请求命令如下: GET,获取资源.例如:/employees表示获取列表 ...

  2. SpringBoot 构建 REST 服务

    摘要 该文章只为了说明如何整合REST服务,并不介绍如何使用,当做笔记吧. MongoDB 以MongoDB为例 maven 依赖 <dependency> <groupId> ...

  3. jersey构建rest服务返回json数据

    1.  eclipse 创建 dynamic web project 2.  将jersey相关jar包放到libs目录下 3. web.xml 增加 jersey 相关内容 <?xml ver ...

  4. SpringBoot 快速构建微服务体系 知识点总结

    可以通过http://start.spring.io/构建一个SpringBoot的脚手架项目 一.微服务 1.SpringBoot是一个可使用Java构建微服务的微框架. 2.微服务就是要倡导大家尽 ...

  5. 《Spring Cloud构建微服务架构》系列博文示例

    SpringCloud-Learning   源码下载地址:http://download.csdn.net/detail/k21325/9650968     本项目内容为Spring Cloud教 ...

  6. Spring Cloud构建微服务架构

    Dalston版本 由于Brixton和Camden版本的教程已经停止更新,所以笔者计划在2017年上半年完成Dalston版本的教程编写(原计划完成Camden版本教程,但由于写了两篇Dalston ...

  7. python(30) 获取网页返回的状态码,状态码对应问题查询

    获取访问网页返回的状态码 html = requests.get(Url) respon = html.status_code 以下内容来自于维基百科:点击查看网页 1xx消息 这一类型的状态码,代表 ...

  8. apache 返回的状态码304

    博客转载:http://baike.baidu.com/link?url=jhw62dpK66WD7EQFKWEhVQs_jPeFKIUegnA6 如果客户端发送了一个带条件的GET 请求且该请求已被 ...

  9. 关于修改.net core webapi中null默认返回的状态码。

    在asp .net core webapi中,http请求的响应数据如果是null的话,我们知道状态码会返回204,即NoContent,为什么会出现这种情况呢?   因为在返回响应数据的时候,nul ...

随机推荐

  1. [转帖]什么是 LLVM?Swift, Rust, Clang 等语言背后的支持

    要了解用于以编程方式生成机器原生代码的编译器框架是如何让新语言的推出以及对现有的语言进行增强比以往更加容易了. https://www.oschina.net/translate/what-is-ll ...

  2. Java -cp命令的使用

    服务器跑程序,用到了一些Linux命令,做个简单笔记. Linux(Mac)下 java -cp .:jar包路径 主类的全限定名称     全限定名有绝对路径的意思,比如一个文件file的存放路径, ...

  3. [ZJOI2008]骑士 题解

    题面 这道题稍微想一想就会联想到树形DP的入门题:没有上司的舞会: 但是再想一想会发现这根本就不是一颗树,因为它比树多了一条边: 这时候我们引入一个新的概念:基环树: 顾名思义(??),基环树就是在一 ...

  4. $Prufer$序列

    \(Prufer\)序列 \(Prufer\)序列与树的相互转换: 树->\(Prufer\)序列 找到一个编号最小的叶子结点,把这个点删掉并且把跟他连着的那个点的编号加入\(Prufer\)序 ...

  5. picgo+typora优化markdown体验

    picgo+typora优化markdown体验 写markdown的时候许多图片的存放的上传是一个大问题,之前一直都是使用先截图,在commit之后,再将线上图片地址粘贴到相应的位置 现在知道了pi ...

  6. vue history模式 ios微信分享坑

    vue history模式 ios微信分享坑 问题分析:因为苹果分享会是调取签名失败是因为:苹果在微信中浏览器机制和安卓不同,有IOS缓存问题,和IOS对单页面的优化问题,通俗点说安卓进行页面跳转分享 ...

  7. python 父子节点生成字典

    lines = [(1, 1, '父1节点'), (2, 1, '1-2'), (3, 1, '1-3'), (4, 3, '1-3-4'), (5, 3, '1-3-5'), (6, 3, '1-3 ...

  8. java 返回输入中出现次数最多的字符串

    举例输入: abc abc de de de fghi fghi 应该返回: de 代码: static List<String> func(String str) { String[] ...

  9. AIX中卷组管理

      1.创建卷组 使用mkvg指令创建卷组. mkvg 指令参数 -B 创建大型卷组,该卷组最大能容纳128个物理卷和512个逻辑卷 -C 创建增加型并发卷组 -f 强制创建卷组 -G 与-B一样,创 ...

  10. python_实现员工信息表

    实现员工信息表 文件存储格式如下:id,name,age,phone,job1,Alex,22,13651054608,IT2,Egon,23,13304320533,Tearcher3,nezha, ...