Http请求协议

请求协议

https协议是安全版的http协议,网上银行使用这种协议.这个协议在发送信息时先把信息内容加密,一段时间内使用的加密算法不一定.

我们可以通过浏览器插件来监视请求和响应,获取完整的请求和响应信息。

IE:需要自己安装HttpWatchHttpWatch软件本身的默认编码不是UTF-8.不支持中文.

招商银行的网银插件跟HttpWatch冲突,要禁用它,才能使用HttpWatch.HttpWatch要拦截信息,招商网银不允许拦截信息.

Fire Fox:安装Firebug插件;

Google:内置了这功能,也无需安装。

GET请求

下面是通过FireFoxFirebug获取到的请求信息,这就是浏览器发送给服务器的全部请求信息内容。请求的地址是:http://localhost/hello/index.jsp

  //请求首行
  GET /hello/index.jsp HTTP/1.1
  //下面全部是请求头信息,因为GET请求没有正文
  Host: localhost
  User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
  Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  Accept-Language: zh-cn,zh;q=0.5
  Accept-Encoding: gzip, deflate
  Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7
  Connection: keep-alive
  Cookie: JSESSIONID=369766FDF6220F7803433C0B2DE36D98
    //空行,因为GET没有正文,所以下面没有东西了

 

GET /hello/index.jsp HTTP/1.1GGET请求,请求服务器路径为/hello/index.jsp,协议为1.1

Host:localhost发出请求的主机名为localhost

User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0:与浏览器和OS相关的信息。有些网站会显示用户的系统版本和浏览器版本信息,这都是通过获取User-Agent头信息而来的;

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8:告诉服务器,当前客户端可以接收的文档类型,其实这里包含了*/*,就表示什么都可以接收;

Accept-Language: zh-cn,zh;q=0.5:当前客户端支持的语言,可以在浏览器的工具à选项中找到语言相关信息;

Accept-Encoding: gzip, deflate:支持的压缩格式。数据在网络上传递时,可能服务器会把数据压缩后再发送;

Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7:客户端支持的编码;

Connection: keep-alive:客户端支持的链接方式,保持一段时间链接,默认为3000ms

Cookie: JSESSIONID=369766FDF6220F7803433C0B2DE36D98:因为不是第一次访问这个地址,所以会在请求中把上一次服务器响应中发送过来的Cookie在请求中一并发送去过;这个Cookie的名字为JSESSIONID,然后在讲会话是讲究它!

 2.Post请求

   下面是通过POST请求获取到的请求信息 
// 请求首行
POST /hello/index.jsp HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://localhost/hello/index.jsp
Cookie: JSESSIONID=369766FDF6220F7803433C0B2DE36D98
Content-Type: application/x-www-form-urlencoded 
Content-Length: 14 
// 这里是空行
//POST有请求正文
username=hello
 

Referer: http://localhost/hello/index.jsp:请求来自哪个页面。这个值说明请求是从index.jsp页面发送出去的!这个东东还是比较有用的!如果这个表单的作用是下载,那么在给用户提供资源之前可以去判断请求是从哪个页面发送过来的,如果不是从本网站发送过来的,那么就可以拒绝下载,例如盗链!

Content-Type: application/x-www-form-urlencoded:表单的数据类型,说明会使用url格式的UTF-8编码数据;url编码的数据都是以“%”为前缀,后面跟随两位的16进制;

Content-Length:14:表示请求数据的长度,这里表示14个字节。

username=hello:这是请求正文!hello是在表单中输入的数据,username是文本框的名字。

  String s = URLEncoder.encode("大家好", "UTF-8");
  System.out.println(s);
  s = URLDecoder.decode(s, "UTF-8");
  System.out.println(s);

 

<!--EndFragment-->

你可能感兴趣的:(http)