某个偏技术的内向男的一个分析代码,无限YY的小窝。
  • [编程基础系列]Html协议之Get与Post区别

    2011-08-09

    文章老早前就想发了,很多事情想做但是付诸实践的不多,尽自己的能力给大家提供一些东西,内容部分来源于互联网,加上个人理解,如涉及到版权或者错误内容,请留言,博主会在第一时间处理。

    HTTP协议

    超文本传输协议(HTTP,HyperText Transfer Protocol),HTTP请求是无状态的,每次请求都是一个新请求,某些时候服务器端通过每次提交的cookie来保持你的状态,HTTP/1.1协议中共定义了八种方法(有时也叫“动作”)来表明Request-URI指定的资源的不同操作方式:

    OPTIONS
    返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送’*'的请求来测试服务器的功能性。
    HEAD
    向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。
    GET
    向特定的资源发出请求。
    POST
    向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的创建和/或已有资源的修改。
    PUT
    向指定资源位置上传其最新内容。
    DELETE
    请求服务器删除Request-URI所标识的资源。
    TRACE
    回显服务器收到的请求,主要用于测试或诊断。
    CONNECT
    HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

    虽然HTTP有八个请求方法,但是常用的也就是两个GET和POST。

    GET

    一、GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连,如:s?wd=%B7%BD%B7%A8&rsv_bp=0&inputT=371647如果数据是英文字母/数字,原样发送,如果是空格,转换为%20,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%B7%BD%B7%A8。(也可无参数)。

    二、Get方式在通过URL提交数据,数据在URL中可以看到。

    三、GET方式提交的数据最多只能是1024字节

    四、一些image,css,js一般是GET请求。

    POST

    一、POST发送的数据将放置在HTML HEADER内一起传送到Request_Line中的URL地址。一般用户看不到整个数据发送过程和内容。

    二、POST是没有大小限制的,HTTP协议规范也没有进行大小限制。

    三、POST相对GET来说安全性较高,不会直接将提交到服务器的信息暴露在地址栏。

    POST与GET响应信息示例:

    作者:天南一隅 | 分类目录:XX技巧 | 标签:
  • 工作2年来我的对工作和生活的认识

    2011-05-31

    工作

    1. 没有完不成的任务,要相信自己,所有问题只是时间问题
    2. 有时候可以完成一些小事情来增加自己的自信心,自信这个东西不是一下子建立和消失的。
    3. 学会拒绝别人,比如有的事情你做习惯之后,你突然不再做(因为不是你职责内),大家会抱怨,所以说要学会拒绝。
    4. 待人真诚,用真心去对待别人才能换来别人的真心对待。
    5. 与领导沟通不要跟他们谈功能细节,他们不想知道这个,他们只想知道你能不能定时完成任务
    6. 与其一味的想去通过某种方式取悦别人来拉近关系,不如强大自己然后放低姿态,所有的人打心眼里都敬畏强者。
    7. 说话的时候要过脑子,要注意自己的所处的位置,自己和别人看事情的角度,自己和别人对事情的了解程度。
    8. 遇事要冷静对待,就是所谓的淡定
    9. 把每天的工作任务完成的和未完成的写下来,让你的工作有规划性

    本文会持续更新的~

    作者:天南一隅 | 分类目录:XX技巧人生感悟我很xx职场规则蛋疼语录 | 标签:
  • [纯属YY]c#实现多线程删除文件

    2011-05-27

    公司图片服务器某个盘今天又满了,每次都是用一个控制台程序去删文件,我DOS命令不熟,今天突发奇想用上多线程是不是会快一些呢?然后就写了些代码。(PS:可能这些代码你一辈子都用不上。)

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
    using System.Data.SqlClient;
    using System.Data;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System.Collections;
    
    namespace FiledbWrite
    {
        class Program
        {
            static void Main(string[] args)
            {
                DateTime timeStart = DateTime.Now;
                string path = System.Configuration.ConfigurationManager.AppSettings["path"];
               List allPath = new List();
                int I = 0;
                foreach (string file in Directory.GetDirectories(path))
                {
                        deleteFile d = new deleteFile();
                        d.originalDir = file;
                        d.tempDir = file;
                        d.deleteAction = new System.Threading.Thread(d.Action);
                        d.threadNO = I;
                        allPath.Add(d);
                        I++;
                }
                foreach (deleteFile d in allPath)
                {
                    try
                    {
                        d.deleteAction.Start();
                    }
                    catch (System.Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                }
                while (true)
                {
                    if (getState(allPath))
                        break;
                }
                DateTime timeEnd = DateTime.Now;
                TimeSpan timeSpan = timeEnd - timeStart;
                Console.WriteLine(string.Format("线程数:{0},总用时{1}s", I + 1, timeSpan.Seconds));
                Console.ReadLine();
            }
            //获取当前所有线程状态是否都已停止(删除完)
            public static bool getState(List d)
            {
                bool over = true;
                foreach (deleteFile ddd in d)
                {
                    if (ddd.deleteAction.IsAlive)
                        return false;
                }
                return over;
            }
        }
        //文件删除功能类 作者头脑简单图省事 使用多个类实现了多线程
        public class deleteFile
        {
            //线程编号
            public int threadNO = 0;
    
            public System.Threading.Thread deleteAction;
            ///
    
            /// 临时目录
            /// 
    
            public string tempDir = string.Empty;
    
            ///
    
            /// 原始目录
            /// 
    
            public string originalDir = string.Empty;
    
            public void Action()
            {
                try
                {
                    //删除每个文件夹下文件
                    DeleteFolderFile();
                    //删除文件夹
                    Directory.Delete(originalDir, true);
                    //停止线程
                    deleteAction.Abort();
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            }
    
            public void DeleteFolderFile()
            {
                try
                {
                    System.IO.File.SetAttributes(tempDir, System.IO.FileAttributes.Normal);
                    foreach (string d in Directory.GetFileSystemEntries(tempDir))
                    {
                        System.IO.File.SetAttributes(d, System.IO.FileAttributes.Normal);
                        if (File.Exists(d))
                        {
                            FileInfo fi = new FileInfo(d);
                            if (fi.Attributes.ToString().IndexOf("ReadOnly") != -1)//避免只读文件
                            { fi.Attributes = FileAttributes.Normal; }
                            Console.WriteLine(string.Format("当前文件:{0},当前线程:{1}", d, threadNO));
                            File.Delete(d);  //删除文件
                        }
                        else
                        {
                            try
                            {
                                tempDir = d;
                                DeleteFolderFile();//递归
                            }
                            catch (System.Exception ex)
                            {
                                Console.WriteLine(ex.Message);
                            }
                        }
                    }
                }
                catch (System.Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
        }
    }
    

    例子是根据要删除目录的子文件夹的个数来实例化线程的。本以为速度会快上一些,后来想了想可能达到了IO瓶颈了,服务器上文件比较多,都是图片,大小不一,看了看速度一分钟差不多能删1G。
    有什么不清楚明白的地方请留言,有什么错误的地方请指正。

    作者:天南一隅 | 分类目录:XX技巧 | 标签:
  • javaeye被关闭?!

    2010-11-22

    知名技术类网站javaeye今天下午2点左右访问时提示被关闭。截图如下:

    JavaEye被关闭

    JavaEye被关闭

    关于此事我没有任何看法,我也不敢有任何看法,在天.朝”被“习惯了。

    以下是部分网友的和谐评论:

    JavaEye被封是因为我写的动态防火墙代码太智能了,把电信负责内容监控的爬虫给封了,结果我就被封了。

    范凯对 的内容控制这么严格,怎么还会出事?莫非是上海大火头七引发的?

    javaeye被维护,今天中午这件事说明了,国家不想我们玩手机也不想我们做程序,就想我们听CCTV。

    该不会是64位CPU让#javaeye 关了吧……

    用dns解析出来的JavaEye ip 访问显示”此域名不存在,或者已经关停!

    作者:天南一隅 | 分类目录:XX技巧 | 标签:
  • 怎么嫁人看这里[下]

    2010-08-23

    1.遇到自己喜欢的男人,一定要勇敢去追。

    单恋是最伤人的,也是最没有结果的。

    2.有话明说。

    有什么想法,说出来,不要让男人去猜,能沟通,你的生活会更快乐。不能沟通,说明你们的幸福还没有保证。我想,没有一个男人是以猜女友心思为乐的。为这个原因,失去一个好男人,真的很可惜。

    3.不要一开始就在男人面前做贤惠状。

    如果他对你的付出心安理得,却不懂回报,他有大男子主义的嫌疑。如果你时间长了,心里放松了,做得没有以前好,他会很受伤,会觉得你骗了他或是你不爱他了。

    不如一开始,就有分寸的表达爱意,给他表现的机会,让他为你做些事。说实话,男人对自己付出的东西印象比较深刻。他为你做得越多,付出越多,他对你越留恋,越离不开。反而,你的付出,他的获得他比较没感觉。在婚姻中,常干家务活,常照顾孩子的男人放弃婚姻的可能性要低得多,也正是因为这个家是他辛苦造就的,他更舍不得放弃。

    很多花心狠心的男人都有一个最贤惠,无私的女人在默默付出。我最终下决心嫁给自己的男友,是因为他和我说:我非常操心你,我总怕你过得不好,或是遇上什么事,只要一不看见你,我就非常担心你。他的付出和我的感激是我们俩最好的相处模式。

    4.当断则断。

    人人都有犯错的可能,但如果一错再错,就是自己有问题。好多姐妹因为“和他在一起N年了”,“他是我第一个男人”,“我为他流过N个孩子了”,“我为了付出了……”“我已经……岁了”而忍受和一个不善待自己的男人生活在一起,最后受伤的还是自己。我的一个朋友和我说过:这个世界上的事,没有一成不变的,它要么变好,要么变坏,总之,没有不变的。这句话直接促使我走出了一段不好的感情。因为,我知道,如果要变,那段感情只会变得更差,以后我受得伤会更多。我的勇敢是我现在过得不错最坚实的基础。

    5.因为爱而爱,不是为了一场漂亮的婚礼或是梦想中奢华的生活而爱。

    一切幸福都需付出代价,但不要让有些代价毁了你的一生。年轻的女生容易被虚荣所蒙蔽,但在真正的婚姻中,那个能在夜里给你盖上蹬掉的被子的男人才是值得托付一生的男人。

    6.要珍惜真正爱你且对你好的男人。

    好的男人会以真正对你有益的方式对你好,不是纵容你,也不是以爱你的名义束缚你。这样的男人很少,如果遇到了,一定要珍惜。年轻的男人往往会以纯真的方式爱自己的女友,他可能不成熟,但他的爱是真的,不要轻意放弃。以后在社会上历练多了,你才会知道一颗真心有多宝贵。

    7.一切都来得及。

    这个世上有很多好男人正是苦苦寻找另一半。不是所有的男人都只爱处女,也不是所有的男人都会在乎你以前的婚姻,更不是所有的男人都在意你的年龄学历。有很多好的婚姻中,男人爱的,是自己女人的笨,天真及及圆圆的身材,或是嘴角的那颗痣。你受过的伤,他会加倍疼惜,你的勇敢,会让他更加尊重。所以,即使受了伤,也要像金三顺一样,勇敢去爱,就像没有受过伤一样。你只有首先开放了自己,这个世界才会放开你。

    8.不要为男人一开始的追求就付出自己的心。

    好男人和坏男人在追求你之初,都会关心你,接你送你,给你发短信,在你生病时照顾你。不要一有人对你好,你就马上陷进去,想一想,多看一看,再做决定。一般,四个月,足够的接触,足以让你了解他。网上的交往不算的,再长时间的网络接触也不算的,真实的生活才有意义。你要和他一起吃饭,逛街,一起做些事,才能了解他。你过得快不快乐,你自己知道。很多时候,不是男人在欺骗我们,是我们自己在骗自己。

    9.如果爱他,接受他的现在,别幻想他的改变。

    如果他能改,当然最好,不然,就想一想,你能不能接受。婚前的每一个缺点,婚后都会被放大。他抽烟,而你又爱他,就努力接受吧,婚后戒烟的男人太少了。其他缺点也是一样。

    作者:天南一隅 | 分类目录:XX技巧 | 标签: