Register

  • 点击获取
  •   

已有账号直接登录    

公告:

热门文章 HTTP协议原理结构分析

时间:2016-8-15 作者:RainFly   分类: Linux嵌入式   热度: 5039°  评论:1  
时间:2016-8-15   分类: Linux嵌入式    热度:5039   评论:1

1.协议特点 

 a.C/S模式

 b.客户端向服务器发出Request 只需传送请求方法和路径, 通信速度快

方法: GET 通过请求URI得到资源 浏览器向服务器一般请求 POST,用于添加新的内容 发送form表单 PUT 用于修改某个内容 DELETE, 删除某个内容 CONNECT, 用于代理进行传输,如使用SSL OPTIONS 询问可以执行哪些方法 PATCH, 部分文档更改 PROPFIND 查看属性 PROPPATCH 设置属性 MKCOL 创建集合(文件夹) COPY 拷贝 MOVE 移动 LOCK 加锁 UNLOCK 解锁 TRACE 用于远程诊断服务器 HEAD 类似于GET, 但是不返回body信息,用于检查对象是否存在,以及得到对象的元数据

c. 传输类型很灵活:只需要给它加上Content-Type  MIME类型值即可

d.发送完请求报文,立即和服务器断开连接(PS:虽然TCP的80端口可以建立多个Socket连接但是如果连接过多服务器响应其他请求放慢),服务器所需要完成的是将端口接受请求放入等待队列,根据算法进行选择相应的连接请求进行处理。 节省了客户端进行等待的时间

e.发送完数据包之后,如果服务器不Response,需要将所有的数据包重新发送。

 2.文件格式

                 Request: 请求报文格式

                

            请求报文可以用Google浏览器进行查看其发送 

发送的报文实例

POST报文头如下: POST /sn/index.php HTTP/1.1 Accept: */* Accept-Language: zh-cn host: localhost Content-Type: application/x-www-form-urlencoded Content-Length: 12 Connection:close sn=123&n=asa 在http头后边有一空行,空行后边接着发送post数据,长度通过Content-Length: 12 指出,此post数据中包含两项 sn=123 n=asa 其中:Content-Type: application/x-www-form-urlencoded 指定POST数据的编码类型 Content-Length: 12 POST数据的长度

GET: GET报问头如下: GET /sn/index.php?sn=123&n=asa HTTP/1.1 Accept: */* Accept-Language: zh-cn host: localhost Content-Type: application/x-www-form-urlencoded Content-Length: 12 Connection:close

 

                   Response :响应报文格式

                

相应阶段报文,给一个API 调试工具 使用GET请求获得数据 http://apistore.baidu.com/astore/toolshttpproxy

我给http:www.baidu.com服务器发送了一个GET请求下面是相应回复的报文 

Response Header HTTP/1.1 200 OK Date: Tue, 16 Aug 2016 01:58:22 GMT Content-Type: text/html; charset=utf-8 Transfer-Encoding: chunked Connection: Keep-Alive Vary: Accept-Encoding Set-Cookie: BAIDUID=E6BADB45ADCAFAF36BAE6C63E46613C9:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com Set-Cookie: BIDUPSID=E6BADB45ADCAFAF36BAE6C63E46613C9; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com Set-Cookie: PSTM=1471312702; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com Set-Cookie: BDSVRTM=0; path=/ Set-Cookie: BD_HOME=0; path=/ Set-Cookie: H_PS_PSSID=1465_18241_17949_18560_17001_11693_20848_20856_20837_20771_20719; path=/; domain=.baidu.com P3P: CP=" OTI DSP COR IVA OUR IND COM " Cache-Control: private Cxy_all: baidu+955142e509dca9cdda759e1be73fb859 Expires: Tue, 16 Aug 2016 01:57:59 GMT X-Powered-By: HPHP Server: BWS/1.1 X-UA-Compatible: IE=Edge,chrome=1 BDPAGETYPE: 1 BDQID: 0xc83e2bbf001302cc BDUSERID: 0 Content-Encoding: gzip

 这里可以看到对应上面图二的结果

版本信息:HTTP/1.1   

HTTP 1.1中的五类状态码:  

100-199 用于指定客户端应相应的某些动作。   

200-299 用于表示请求成功。   

300-399  用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。   

400-499 用于指出客户端的错误。  

 500-599 用于支持服务器错误。 

OK:就是OK

剩余的都是头部行,携带了一些关于发送时间 格式 编码之类的信息

Content-Encoding: gzip  此处是指服务器将Response文件进行GZIP压缩, 当客户端接收后根据Content-Encoding: gzip执行解压缩 (这种方法会降低服务器宽带压力,但是增加了服务器压力,加快网页打开速度)

对文件部分解码的到了Response Body, 就是HTML信息。

在HTTP协议是建立在TCP/IP传输控制协议基础上的,所以所有的文件必须是客户端和服务器TCP三次握手已经建立连接,后面我还会继续了解剖学习 , 还会用C语言实现 HTTP FTP等应用层协议!

热门文章 给多说评论加上显示评论者浏览器信息和操作系统(Emlog)

时间:2015-5-21 作者:RainFly   分类: Web程序设计   热度: 10286°  评论:8  
时间:2015-5-21   分类: Web程序设计    热度:10286   评论:8

          单调的多说评论框看起来好乏味的,所以本站就没有采用多说啦,现在给大家一些方法给你的多说评论框加上显示评论者浏览器信息和操作系统,看起来很炫....

Emlog的插件修改方法

WP已经有很多这样的文章了,在此就不转别人的了,如果你是WordPress,请自己百度找找吧,

第一步,下载安装emlog版本多说插件,将embed.js文件添加到duoshuo文件夹里面;(文件下方下载)

第二步:在你对应模板文件下的footer.php文件底部加上一段代码;

<!---调用多说插件----> <script type="text/javascript"> jQuery(function(){ jQuery('#newcomment').addClass('ds-recent-comments').data('excerpt-length', 32); }); var duoshuoQuery = {"short_name":"xunzhenji"}; (function() { var ds = document.createElement('script'); ds.type = 'text/javascript';ds.async = true; ds.src = '/content/plugins/duoshuo/embed.js'; //ds.src = 'http://static.duoshuo.com/embed.js'; (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ds); })(); </script>

第三步修改CSS显示样式:   可以根据自己喜好~

百度网盘:embed.js   大小:

热门文章 支付宝一键转账付款代码分享

时间:2015-4-29 作者:RainFly   分类: Web程序设计   热度: 21304°  评论:5  
时间:2015-4-29   分类: Web程序设计    热度:21304   评论:5

                 很多网站都采用了一键转账功能,可是支付宝把个人收款主页关闭了,导致很多新站长不懂如何去做一键转账的链接,在这里雨夜轩为大家分享一下一键转账功能的实现,可以直接填写好收款人金额备注,废话不多说直接上代码吧!

  

<form action="https://shenghuo.alipay.com/send/payment/fill.htm" method="POST" target="_blank" accept-charset="GBK"> <input name="optEmail" type="hidden" value="支付宝邮箱" /> <input name="payAmount" type="hidden" value="金额" /> <input id="title" name="title" type="hidden" value="付款说明" /> <input name="memo" type="hidden" value="备注" /> <input name="pay" type="image" value="转账" src="图片链接地址" /> </form>

图片链接地址 (可以下载修改到自己网站上)

  https://img.alipay.com/sys/personalprod/style/mc/btn-index.png

  http://file.arefly.com/alipay.png

如有疑问下方留言,该代码由雨夜轩分享:转载请注明出处,

亲,花费您几秒钟点击一百度联盟广告支持一下,谢谢啦!

热门文章 两步完成emlog导航栏侧边栏悬浮!

时间:2015-4-26 作者:RainFly   分类: Web程序设计   热度: 11645°  评论:10  
时间:2015-4-26   分类: Web程序设计    热度:11645   评论:10

                

           由于有些文章过长导致了侧边栏边上很空洞,从而显得十分不美观,博主在此分享给站长们开放的js代码,可以提供侧边导航栏栏浮动,当然可以用作广告代码,废话不多说分享给大家源码吧,记得自己折腾,不会的留言给我吧!

第一步:找到需要悬浮文件的代码位置

                      

<div id="float"> 你要悬浮的内容代码 </div> <script type="text/javascript" src="http://你的网址/rainfly_a.js"></script>

第二步:在你对应模板的css文件里添加以下代码

.div2{top:10px;z-index:999;position:fixed;_position:absolute}

第三步:查看是否有bug 

ps:建议将以上js替换,如有任何疑问,留言给我!

百度网盘:浮动栏js.zip   大小:2kb

返回顶部    首页    捐赠支持    手气不错    友情链接    关于我们    站长工具    站长介绍    手机版本    后台登陆   
版权所有:雨夜轩    站长:RainFly    特别鸣谢   文章归档   皖ICP备15003600号-1   百度统计
Copyright©2015雨夜轩 Powered by emlog强力驱动 七牛CDN全球加速 360站长联盟安全认证 中国博客联盟荣誉成员 可信赖网站 谷歌地图   百度地图   
页面加载耗时:0.047秒 数据库查询次数:48次
背景设置
$