Http协议

Http协议
http协议与request等对象关系

在这里插入图片描述

1.协议作用
定义浏览器与服务器交互的格式,浏览器(tomcat)默认支持http协议。
访问的过程:
(1)发送一个Http请求。
(2)一个http响应, 响应浏览器。

协议查看
谷歌浏览器查看

  1. Http请求
    一个完整的Http请求包括:一个请求行、多个请求头、请求体

    【一个请求行】
    例如:GET /day08/servlet/MyServlet HTTP/1.1
    a
    提交方式: a
    GET:
    直接访问,都是get提交
    其他,如: location.href=’’;

             数据存放位置:
                 提交数据,追加到地址栏之后,即追加到请求行之后
             提交大小有限制: 1kb
    
         POST:
             只有一种方式: <form method="post">
             数据存放位置:
                 数据保存到请求体中
             提交数据:没有大小限制
    
    提交路径
        例如:/day08/servlet/MyServlet
              包括项目名称、资源名称
    协议
         例如:HTTP/1.1
         协议版本:
            HTTP/1.0
                 一次请求,请求完后,立刻断掉连接
            HTTP/1.1
                 一次请求,保持连接,时间很短,然后就断开请求连接
    

3.HttpServletRequest 对象

request.setCharacterEncoding("UTF-8");    设置请求数据中文编码(对post有效)
request.getParameter("");
request.getMethod();
request.getRequestURI();
request.getHeader("");

4.Http响应(response)
一个http响应: 响应状态行、响应头、响应体

【响应状态行】
    例如: HTTP/1.1 200 OK
    格式: 协议、状态码、状态码的描述

    响应状态码:
        1XX   请求正在处理
        2XX   请求处理成功。
        3XX   重发。  请求还需要进一步细化才能完成处理。
              (重定向)
        4XX   客户端请求错误(请求路径错误)
        5XX   服务器内部错误(代码写错了)

    常用的状态码:
        200   响应正常完成。
        302   还需要进一步处理请求(会从响应头中找location头对应的地址进行再次请求服务器, "重定向")
        304   服务器发送304状态吗,浏览器收到后从缓冲中获取数据
        404   路径错误
        405   提交方式错误
        500   服务器内部错误

响应头:
    content-type:    通过这个响应头,设置相应数据编码
        1. response.setHeader("Content-Type", "text/html;charset=UTF-8");
       
        2. response.setContentType("text/html;charset=UTF-8");
        
        3. response.setCharacterEncoding("UTF-8");   // 只是设置相应数据的编码
    
        通过response方法操作,达到与上面一样的效果
	    response.setContentType("text/html;charset=UTF-8");
	
	location:      设置跳转方向  (重定向)
        跳转
            方式1: 
                response.setStatus(302);
                response.setHeader("location", "/day08/e/success.jsp");
            方式2:重定向方法
        	response.sendRedirect("/day08/e/success.jsp");
                
    refresh:       设置定时刷新或在指定的时间后跳转。

            response.setIntHeader("refresh", 1);                            定时刷新
            response.setHeader("refresh", "5;url='/day08/e/success.jsp'");  5秒后跳转


    Content-Disposition    下载的响应头
        response.setHeader("content-disposition", "attachment;fileName=" + URLEncoder.encode(file, "UTF-8"));

    
    Content-Encoding       数据压缩
  1. HttpServletResponse 对象

任务:
1. 请求数据,获取
4种, 请求中文数据(get/post)

2. 请求头: referer头案例

3. 响应头
    编码、重定向、刷新、下载、压缩

响应:

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Length: 0
Date: Mon, 03 Aug 2015 07:11:34 GMT


请求协议:
GET /day08/servlet/MyServlet HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8,en;q=0.6

请求体数据
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值