Telnet 连接 HTTP

http是应用层协议。每个人每天都在用。可以看成是http报文over TCP over IP这样的一个东西。

telnet是通过tcp来连接的。所以通过telnet和http服务器通信也没有什么了。如下步骤:

1:开始—>运行 打开“运行”窗口。输入cmd 然后点击确认。

2:输入telnet(空格)主机名(空格)端口 。如下图:

1

 

 

 

 

 

3:输入回车,然后会看到黑屏,一个光标在闪(如果这个时候输入东西会什么也看不到),这个时候按ctrl+](中括号键)。会看到Microsoft Telnet>这个时候敲回车。又会看到黑屏,一个光标在闪。这个时候按照http规范输入http报文。

注意输入完 请求头后有个CRLF(回车换行),也就是键盘上的Enter回车键

GET /ylk HTTP/1.1
Host:www.baidu.com

CRLF

2

PS:

关于cmd的编码可以参考下chcp命令(http://baike.baidu.com/view/1244987.htm)。

fiddler 一些有用的操作

通过设置fiddler的customize Rules可以实现一些工具栏无法实现的操作。

修改customize Rules方法是 工具栏的Rules—>Customize Rules…或者按快捷键ctrl+R,前提是要是fidller是当前活动窗口按快捷键才管用。默认的话会打开记事本编辑器,编辑一个js文件。

当然可以下载fidller提供的rules专用编辑器,提供了比较好的语法检查、高亮、api、行号显示、快速定位到要修改的方法等比较方便操作,下载地址:http://www.fiddlertool.com/fiddler/fse.asp

1:有些时候我们可能要使得我们访问的某个网站的URL重定向到另外一个主机URL。比如你要调试服务器上的js,至于是为了修复bug,还是找漏洞就是另外的事情了,但是服务器上的js一般为了提高访问速度,都是被压缩的。人根本没法看,这个时候如果你本地有一个非压缩的。就可以使这个文件的请求重定向到你本地文件,方便调试。当然本地要先启动一个web服务有这个文件才行,

实例请求苏宁易购支付平台易付宝https://pay.suning.com/epp-portal/login.action返回的信息用chrome查看如下:

1

 

 

 

 

 

 

比如现在我想把这个文件替换为我本地的jquery1.8进行调试。难道修改服务器。no。直接用fiddler就可以了。在fiddler的rules里面的onBeforeRequest里面添加如下code:

if (oSession.url==”pay.suning.com/epp-portal/scripts/jquery-1.4.4.min.js”) {
oSession.url = “localhost/ylk/js/jquery-1.8.2.js”;
}

就可以将这个文件替换为我本地的了。

再次访问如图下图所示 :虽然文件名没有改,但是文件内容已经是我本地的内容了。

2其实如果大家按照我的操作,很可能失败。因为这个是https的请求。我也是在本地假设了个https的web服务器。如果说把oSession.url = “localhost/ylk/js/jquery-1.8.2.js”;改为oSession.url = “http://localhost/ylk/js/jquery-1.8.2.js”;不就可以了么?这样fiddler会报错。难道必须也要假设个https的web服务器。no,请继续看。

2:拦截及篡改指定URL。其实fiddler,http和https的都可以拦截和篡改。

一般拦截的话,大家直接点击菜单栏rules—->automatic breakpoints—>选择在请求前暂定、还是在响应后暂停就可以了。暂定住了就可以修改请求或响应了。哈哈。比如删掉或者修改某段响应的js。篡改请求的cookie值等,相当方便。但是我们访问一个网页的时候,这个网页往往关联好多资源(css.js)。这样的拦截操作会拦截所有的url。然后还要一个一个放行,这样太麻烦了。能不能只拦截我们关心的URL呢?答案是可以的。如下。

在onBeforeRequest中添加如下code:

if (oSession.url.toLowerCase().indexOf(“jquery-1.4.4.min.js”)>-1){
oSession["x-breakrequest"]=”pause on jquery”; //这里的”pause on query”字符串写什么都行
}

就可以只拦截暂停我们关心的URL,然后可以进行篡改等。图片看不清可以点击看大图。

3

3:仅显示感兴趣的回话

有些时候访问一个网页会带出来好多请求,这个时候回话列表里面比较多,怎么样可以只显示自己关心的呢。比如只拦截https://pay.suning.com/epp-portal/login.action,而这个页面的附带图片,css,js不拦截可以修改custom Rules在OnBeforeRequest中添加

if (oSession.url.indexOf(“epp-portal/login.action”)==1){
oSession["ui-hide"]=”hide not login.action”;  //这里的字符串可以随便写无所谓
}

这里只是列举几个。还有其他好多功能。比如替换host、不同样式显示指定的回话等都差不多也是这样改的。可以参考下面的网址,试试。就明白了。

https://www.fiddler2.com/Fiddler/Dev/ScriptSamples.asp

http://www.fiddlertool.com/Fiddler/help/

4.关于fiddler的快速执行QuickExec

如果实现一些操作只能修改rules,每次都编辑,风险也大,也不方便。这个时候可以使用quickExec位于窗口的左下角,使用起来更简单方便。具体使用可以参考如下网址

http://fiddler2.com/fiddler/help/quickexec.asp

eclipse maven jetty plugin https配置

只要在pom.xml中build—>plugins–>plugin–>configuration—>connectors里面加一个如下的配置 :

<connector implementation=”org.mortbay.jetty.security.SslSocketConnector”>
<!– 端口 可以自己指定–>
<port>443</port>
<!– 自己的keystore路径–>
<keystore>src/main/resources/keystore/ylk.p12</keystore>
<!– keystore密码 –>
<keyPassword>123123</keyPassword>
<!– private key密码 –>
<password>123123</password>
<!– 指定keystore的格式(根据自己情况而定) –>
<keystoreType>PKCS12</keystoreType>
</connector>

如果启动报错可以看看错误信息,对比另外一篇文章<<数字证书操作常见错误及GUI工具>>就可以知道错误原因了。至于keystore的生成,网上baidu一堆,这里就不写怎么生成了。 写个简单的jsp页面。访问,如下图所示:

jetty https