我爱编程JavaWeb学习

Http协议

2018-06-02  本文已影响2人  幻影翔

作用:
- 对浏览器客户端与服务器的数据格式的规范!!

1、http请求

请求行    GET /ListServlet.do HTTP/1.1
请求资源
    URL: 统一资源定位符
    URI:统一资源标记符

请求行 
请求头
空行
实体内容     POST提交的参数会放到实体内容中

使用HttpServletRequest对象: 获取请求数据

2.http响应

响应行
响应头
空行
实体内容(浏览器看到的内容)

使用HttpServletResponse对象: 设置响应数据

请求方式Get  VS   Post

  Get: 
     a.地址栏会跟上参数,以?开头,多个参数以&分隔
     b.提交数据大小有限制,不超过1kB。
     c.Get方式不适合提交敏感密码
  Post:  
      a.地址栏不会跟上参数,没哟?,参数跟在请求行的实体内容后中,对个参数以&分隔
      b.Post方式提交敏感密码

请求头

请求头

响应头

响应头

请求对象HttpServletRequest

核心的API:
  请求行: 
        request.getMethod();   请求方式
        request.getRequetURI()   / request.getRequetURL()   请求资源
        request.getProtocol()   请求http协议版本
                
  请求头:
        request.getHeader("名称")   根据请求头获取请求值
        request.getHeaderNames()    获取所有的请求头名称

  实体内容:
        request.getInputStream()   获取实体内容数据
  拼接地址( http://localhost:8080/  )
        request.getScheme()
         +"://"+
         request.getServerName()
        +":"+
        request.getServerPort()
        +request.getContextPath()
        +"/";

获取请求的参数

核心的API:
    request.getParameter("参数名");  根据参数名获取参数值(注意,只能获取一个值的参数)
    request.getParameterValue("参数名“);根据参数名获取参数值(可以获取多个值的参数)

  request.getParameterNames();   获取所有参数名称列表  

请求参数编码问题

修改POST方式参数编码:
    request.setCharacterEncoding("utf-8"); //只对post方法有效
修改GET方式参数编码:
    手动解码:String name = new String(name.getBytes("iso-8859-1"),"utf-8");

状态行

状态码
上一篇 下一篇

猜你喜欢

热点阅读