关于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)
阅读更多
(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)
阅读更多
相关文章推荐
- 关于HTTP请求报文和响应报文学习笔记
- 关于HTTP请求和响应报文格式
- 关于C++随机数生成中种子值设置的一点总结,解决随机数序列重复问题
- 关于拦截器的一点总结
- 关于分开编写多个LaTeX文件的一点微小的总结
- 关于dijkstra的一点总结
- 关于面向对象编程中很多人用get()和set()方法,而不用public的一点总结
- 关于DFS和递归的一点总结
- 关于函数参数的一点总结
- 关于使用git一点额外总结
- 关于ListView的一点总结(未完成)
- 关于用CSplitterWnd分割View的一点总结
- 关于单元测试中STUB的一点总结
- 关于NSSet的一点总结
- 关于堆的一点总结
- 关于 FileProvider(应用间共享文件)的一点总结
- 关于动态规划的一点总结
- 关于<taglib>的uri的一点总结
- 关于PCA算法的一点学习总结
- 关于2015年中一点小总结