`

Http请求协议

    博客分类:
  • 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-->
分享到:
评论

相关推荐

    超全面javaweb教程28天第8天 15 POST请求中http请求协议内容

    超全面javaweb教程28天第8天_15_POST请求中http请求协议内容

    HTTP协议详解(请求、响应、URL等)

    URL(Uniform Resource Locator)是HTTP请求中的关键组成部分之一,用于标识网络资源的位置。其基本结构如下所示: ``` http://host[":"port][abs_path] ``` - `http`表示使用的协议。 - `host`表示服务器的主机名...

    java开发教程_03_在线支付_分析易宝支付网关的请求协议

    1. **HTTP请求协议**:易宝支付的API通常基于HTTP协议,因此开发者需要熟悉GET和POST请求,以及如何在请求中携带参数,如商品信息、订单号、金额等。 2. **JSON数据格式**:多数API接口会使用JSON作为数据交换格式...

    HTTP GET请求中所涉及到的网络协议

    在探讨HTTP GET请求中涉及的网络协议时,我们需深入理解这一过程中各层协议的作用及其交互方式。HTTP GET请求作为互联网应用中最常见的通信方式之一,其实现不仅依赖于HTTP协议本身,更涉及到TCP/IP协议栈中的多个...

    C#实现http协议GET、POST请求

    C#实现http协议GET、POST请求 C#实现http协议GET、POST请求 C#实现http协议GET、POST请求 C#实现http协议GET、POST请求 C#实现http协议GET、POST请求

    STC系列C51单片机使用uip协议栈主动向Web服务器提交HTTP请求

    STC系列C51单片机使用uip1.0协议栈主动向向Web服务器提交HTTP请求。 本UIP协议为本人亲自移植,绝对可以使用。 单片机:STC12C5A60S2 1T C51单片机 协议栈:UIP1.0 支持主动连接其他网络设备,不需要使用定时器,...

    QT实现HTTP请求回应程序

    在本文中,我们将深入探讨如何使用QT来实现HTTP请求和响应的程序,这将涵盖QT的基本概念、HTTP协议原理以及实际的代码实现。 首先,我们需要了解QT中的网络模块。QT提供了一个强大的网络编程接口,它允许开发者方便...

    易语言建立HTTP连接请求

    在易语言中,我们通常会使用内置的网络库来实现HTTP请求。 1. **建立HTTP连接请求**: 易语言提供了`Internet建立连接`命令,用于创建一个与指定服务器的TCP连接。该命令需要输入服务器的IP地址或域名以及端口号。...

    C++实现HTTP请求

    总之,C++实现HTTP请求是一个涉及网络编程、协议解析等多个技术层面的问题。通过`HttpClient`类,我们可以简化这一过程,专注于业务逻辑,而不是底层的网络通信细节。在阅读和理解"HttpClient.cpp"和"HttpClient.h...

    spring-boot-protocol:springboot功能扩展-netty动态协议,可以支持各种网络协议的动态切换(单端口支持多个网络协议)。支持mmap,sendfile零拷贝,http请求批量聚合

    支持http请求聚合, 然后用 select * from id in (httpRequestList). 示例:com.github.netty.http.example.HttpGroupByApiController.java3.支持异步零拷贝。sendFile, mmap. 示例:...

    Http协议内容总结 http协议包含哪些内容 Http协议的请求方法 Http协议实现的原理机制 get与post请求的区别

    1. **客户端发起请求**:客户端通过HTTP请求向服务器发送数据。 2. **服务器处理请求**:服务器接收到请求后进行解析,根据请求内容执行相应的操作。 3. **服务器返回响应**:服务器处理完成后,向客户端发送响应,...

    VC++ HTTP Get Post请求

    在大型或复杂的VC++应用中,通常会采用异步处理HTTP请求,以避免阻塞主线程。WinInet虽然支持异步模式,但其API设计较为复杂,因此开发者可能需要编写额外的回调函数和错误处理代码。另一种选择是使用第三方库,如...

    JAVA实现HTTP请求

    这个是我自己集成框架的时候写的一个HTTP请求的辅助类,主要是通过HttpURLConnection 来实现JAVA的HTTP请求,有的人会问、为什么有些网站发请求没问题,有些网站发请求却返回数据,在给网站发送请求的时候,请看清楚...

    http请求辅助工具

    《HTTP请求辅助工具详解》 在信息技术领域,HTTP(超文本传输协议)是网络上应用最为广泛的一种协议,用于从万维网服务器传输超文本到本地浏览器的传输协议。随着互联网的发展,对HTTP请求的管理和调试变得至关重要...

    封装好的HTTP请求类,基于QT

    本篇将详细探讨基于QT封装好的HTTP请求类的相关知识点。 首先,QT库中的网络模块提供了QNetworkAccessManager类,它是进行HTTP和FTP请求的核心。通过这个类,开发者可以方便地发起HTTP GET、POST等请求,并处理响应...

    c# http协议,实现get或post发送请求 并返回内容

    在C#中,我们可以使用`System.Net.Http`命名空间中的HttpClient类来处理HTTP请求。以下是如何使用HttpClient发送GET和POST请求的示例: **GET请求示例:** ```csharp using System.Net.Http; using System....

    使用httpwatch学习http协议或者判断http网络请求故障

    2. 捕获HTTP请求:启动HTTPWatch后,打开有故障的网页,所有与该页面加载相关的HTTP请求都会被记录下来。 3. 分析请求细节:查看HTTPWatch提供的详细报告,包括请求头、响应头、时间线等,找出可能的问题点。 4. ...

    http协议请求响应详解

    消息头在HTTP请求和响应中扮演着重要的角色,它们用于传递各种上下文信息,使得服务器和客户端能够更准确地理解彼此的需求和能力。 - **通用信息头**:适用于所有HTTP消息,如`Date`、`Cache-Control`等。 - **请求...

    http协议j请求

    在本压缩包中,"http请求"可能是指通过编程方式发送HTTP请求,特别是涉及到POST方法和JSON数据格式的使用。 POST请求是HTTP协议中的一种方法,常用于向服务器提交数据,比如创建新的资源。与GET请求不同,POST请求...

    HTTP请求报文拦截与篡改源码1

    HTTP请求报文是Web应用程序中客户端(如浏览器)与服务器之间通信的核心载体,它包含了用户对Web资源的请求信息。本源码实现了一个基于代理服务器的HTTP请求报文拦截与篡改的功能,允许开发者在请求发送到服务器之前...

Global site tag (gtag.js) - Google Analytics