您的位置:首页 > 理论基础 > 计算机网络

关于http请求及响应报文的一点总结

2017-06-26 10:51 211 查看
1.http请求的特点
  (1)基于B/S 模式,即客户/服务器模式
  (2)通信开销小,简单快速,传输成本低
  (3)使用灵活:超文本协议,允许服务器和客户端传输任意类型或者任意数据结构的数据对象
  (4)节省传输时间
  (5)可能影响传输效率,无状态
  (6)在写请求的时候,用get方法传参数不能带中文

2.
(1)http请求报文的格式
  请求行:请求方式,地址URL,协议版本
    (注意,get方式的请求数据是放在请求头部的,在URL链接的后面,问号(“?”)代表URL的结尾与请求参数的开始)

  请求头部: 请求头部通知服务器有关于客户端请求的信息
User-Agent:产生请求的浏览器类型。
Accept:客户端可识别的内容类型列表。
Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机。
Cookie: $Version=1; Skin=new;jsessionid=5F4771183629C9834F8382E23BE13C4C,客户端的Cookie就是通过这个报文头属性传给服务端的哦
Referer :表示这个请求是从哪个URL过来的

  请求数据(请求实体,消息实体)
    (注意,post方式比get安全的原因是因为请求数据是放在请求数据段的,以键值对形式存在)

(2)响应报文
由三个部分组成,分别是:
 状态行:Status-Code表示服务器发回的响应状态代码,HTTP-Version表示服务器HTTP协议的版本,Reason-Phrase表示状态代码的文本描述
 响应头:相关服务器的信息,以及返回的数据类型,时间
   Location :重定向,就是响应报文头的Location属性告知客户端的
   Set-Cookie :服务端可以设置客户端的Cookie
 响应正文:服务器返回的消息实体,可以是html文档,也可以是json格式的数据
   


3
--------在java中怎么获取http请求的对应的参数--------
    HttpServletRequest中用于获取请求行的方法:
 Cookie[]   getCookies() ;  
request.getMethod();     //请求方式
request.getRequetURI();  //request.getRequetURL()   请求资源
request.getProtocol();   //请求http协议版本
getServletPath():获取请求的JSP也面所在的目录
getServerName():获取服务器的名称。 
getServePort():获取服务器的端口。 
HttpSession getSession():机理是通过读取请求报文头中Cookie属性的JSESSIONID的值,在服务端的一个会话Map中,根据这个JSESSIONID获取对应的HttpSession的对象

    HttpServletRequest中用于获取请求头的方法:
request.getHeader("name")   //根据name,获取对应请求头数据
request.getHeaderNames()    //获取所有的请求头名称
    HttpServletRequest中用于获取请求实体内容的方法:
request.getInputStream() 
request.getQueryString(),get方式
request.getParameter("参数名");  //根据参数名获取参数值(注意,只能获取一个值的参数)
request.getParameterValue("参数名“); //根据参数名获取参数值(可以获取多个值的参数)
request.getParameterNames();   //获取所有参数名称列表

----------HttpServletResponse的API写响应报文头的属性-----

添加一个响应报文头属性  
  setHeader(String name, String value)   
添加Cookie报文头属性  
   addCookie(Cookie cookie) 
阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: