zoukankan      html  css  js  c++  java
  • Http协议 && Response

        1:Http协议:响应消息
        2.Response对象
        3.ServletContext对象
        
    ## HTTP协议:
        1.请求消息:客户端发送给服务器端的数据
            * 数据格式:
                1.请求行
                2.请求图
                3.请求空行
                4.请求体
        2.响应消息:服务器端发送给客户端的数据
            * 数据格式:
                1.响应行
                    1.组成:协议/版本 响应状态码 状态码描述
                    2.响应状态码:服务器告诉客户端浏览器本次请求和相应的一个状态
                        1. 状态码都是三位数字
                        
                        2. 分类:
                            1. 1xx:服务器接受客户端消息未完成,等一段时间后发送1xx状态码询问
                            2. 2xx:成功。如200代表成功
                            3. 3xx:重定向。如302(重定向),客户端A向浏览器告知去找C。304(访问缓存)
                            4. 4xx:客户端错误。403(没权限),404(路径错误),405(请求方式没有对应doXXX方法)
                            5. 5xx:服务器端错误。500(服务器内部出现异常)

                2.响应头:
                    1. 格式:头名称:值
                    2. 常见的响应头:
                        1. Content-Type:服务器告诉客户端本次响应体的数据格式以及编码格式,解决中文乱码
                        2. Content-disposition:服务器告诉客户端以什么格式打开响应体数据
                            * 值:
                                * in-line:默认值,在当前页面内打开
                                * attachment;filename=xxx:以附件形式打开响应体。文件下载
                3.响应空行
                4.响应体:传输的数据
            
            * 响应字符串格式

    ## Response对象    
        * 功能:设置响应消息
            1. 设置响应行:
                1. 格式:HTTP/1.1 200 ok
                2. 设置状态码:setStatus(int sc)
            2. 设置响应头:setHeader(String name,String value)
                            addHeadder(String name,String value)
                            两者之间的区别?
                                set只能覆盖重写,而add功能是追加
            3. 设置响应体:
                1. 获取输出流
                    * 字符输出流:PrintWriter getWriter()-------- 常用!
                    * 字节输出流:getOutputStream()
                2. 使用输出流,将数据输出到客户端浏览器
        
            重定向的特点:redirect
                1. 地址栏发生变化。
                2. 重定向可以访问其他站点(服务器)的资源
                3. 重定向是两次请求。不能使用request对象

            转发的特点:forward
                1. 转发地址栏路径不变
                2. 转发只能访问当前服务器下的资源
                3. 转发只是一次请求,可以使用request对象来共享数据

            什么时候用请求转发,什么时候用重定向
                需要携带数据用请求转发,剩下的情况两种均可
                
            路径写法:
                1. 路径分类:
                    1. 相对路径(不用):通过相对路径不可以确定唯一资源
                        * 如 ./index.html
                        * 不以/开头,以.开头
                        * 规则:确定访问当前资源和目标资源之间的的相对位置关系
                            * ./:代表当前目录
                            * ../:后退一级目录
                    2. 绝对路径:通过绝对路径可以确定唯一资源(基于浏览器的绝对路径:前台页面,重定向)(基于服务器的绝对路径:转发)
                        * 如http://localhost/day15/rsponseDemo2    /day15/rsponseDemo2
                        * 以/开头
                        * 规则:判断定义的路径是给谁用的?判断请求将来从哪发出
                            * 给客户端浏览器使用:需要加虚拟目录(项目的访问路径)
                                * 建议虚拟目录动态获取:request.getContextPath()
                                * <a>,<form>,重定向...
                            * 给服务器使用:不需要加虚拟目录
                                * 转发路径
                        
                        

  • 相关阅读:
    Raspberry pi raspbain source mirror
    Raspberry pi 定时天气播报
    Raspberry pi 2 wireless settings.
    MATLAB 图像处理-线性变换和直方图均衡
    求向量组的等价正交单位向量组-施密特正交化 C 语言 算法
    矩阵的逆 C 语言 算法二
    矩阵的逆 C 语言 算法一
    线性方程组 解的判别 与解的结构
    How to install .bundle packages in Ubuntu?
    C 语言期中考试 程序分析
  • 原文地址:https://www.cnblogs.com/zlnice/p/9555020.html
Copyright © 2011-2022 走看看