Httphelper头信息(ContentType)默认为text/html无懈可击
转 http://www.sufeinet.com/thread-8623-1-1.html

我发现最近有几个网友提出让我把Httphelper类的,
ContentType属性默认值 text/html修改为application/x-www-form-urlencoded

这个问题不在多解释,你们不管怎么说吧,反正不可能修改,除非你们自己修改,这是我最固执的说法,也许你们现在不理解,但我相信等你们懂了什么是最基础的Http就会理解我的。
下面我来说明一下为什么不修改。
Httphelper是干什么的


谁能告诉我。
我相信提这些问题的人,会说
模拟登录,
抓取Ajax,
模拟登录之后的一些操作,
用来实现接口,比如QQ,支付宝,充值的等等。

但是我想告诉你们,你们做这些工作占这个网站或是整个项目的比重的多少。
你们想想Httphelper是干什么的
从这里就能想明白。一个网站80%以上的网页就都是text/html 类型的,我相信很少见一个网站整个或者是大部分是application/x-www-form-urlencoded方式来获取数据的吧。

我来告诉大家Httphelper是做什么的, 
一句简单的话。

辅助实现所有Http协议或者是Https协议的通信
我的方向是:无所不能的爬虫,无所不能的模拟浏览器
而不是我们狭义的这一点点需求。
这是从大方向上所不允许的。

因为自己不懂Http才提出这样的问题。


 为什么这样说,大家向下看。
Http的最基础组成
头信息+Get或者是Post传输方法+凭证+传输数据

头信息
我一直认为这是Http里最简单最傻瓜的一个,因为他在任意一个抓包软件中都会清楚的显示出来。
<ignore_js_op> 
而这里面需要我们注意的并不多,其中最需要我们注意的就是ContentType的属性
为什么,因为他告诉Http是以什么样的方法进行上传。
更多的头信息请看这里http://www.sufeinet.com/thread-1866-1-1.html
在请求的头信息里还有一个UserAgent不过说实话这个一般不需要写的,
说白了,在Http请求的头信息中,
只要没有故意要增加的部分,
就只有这一个参数需要我们修改,需要我们注意。
然后我了个去,就这一个还是大多数情况下不需要动的。咱们有些人就不知道不懂,不看。
然后还折腾了半天,先是告诉我,我的Httphelper类有问题。最后又说应该默认为application/x-www-form-urlencoded

有时候我生气 就不想回复,这个太基础了,还说一些无知的逻辑。我真想说一句话,没文化真可怕,
但又怕伤了大家的自尊。一直没敢说。于是带气解决问题,言辞犀利。
但是我实在是不明白的是,明明是因为自己连最基础的都不懂,还在那这那的。

application/x-www-form-urlencoded 类型的请求才有多少种,Ajax,C#的Hander,别的没多少了吧,而 text/html 的有多少,成千上万,不要因为自己的现下需求,
或者是自身的学艺不精而,,,想想头信息,这是多么基础的一个东西,
我感觉懂点Http的人   抓包时这都是必须要看的信息,而有些人,
还一直在提,我只能说应该好好学习下。
Httphelper,不光是让你们实现登录,
抓取数据的,这才占多大点。

现身说法,不 是乱说


更让我接受不了的是以自身说法,因为自己经常做登录,接口之类的项目,就以为90%的都是application/x-www-form-urlencoded
如果只从这个角度看确实是这样,因为这里只有三种接口,Hander,Ajax再加个异步。
但是你们自己都没有想过吗,你的登录占整个网站的比中多少。点多少个页面。
我敢说绝对没有JS文件和Css文件多吧,而这种文件都要使用Text/css Text/js之类的头,那你们会不会让我默认为这两种呢?
有些人告诉和90%我想你知道这个世界上有多少个网站吗?我想没多少人知道吧,我虽然不知道,但是我写爬虫爬取过3600万个网站(就是域名)
36亿(数据库大上约为320G左右)每天以上的网址。从这里我总结出来的%比,解码方法,参数默认值。如果你每天或者是长这么大第一次听说过这样的数据,
就不要跟我说什么90%之类的话,因为我只会认为这是你自己乱讲的。没有任何根据
这也是我开始做去查网(www.7c.com)时创造下来的数据和实践,到现在这个网站也一直在用我的爬虫。我一直在从每天几十亿的数据历练我的类。
所我我才说占比多少。我感觉我有这个权力,因为我确实在使用

写这个文章没有针对谁,也不是说想怎么的,只是想让大家通过这个文章认识到一个问题,没有调查就没有发言权,没有实践就不要随意说话,
如果你是来想让你帮你解决问题的,你一上来就说我的类有问题,你想我会安心的帮你解决问题吗,不会,我只会生气不高兴,我感觉这是人之长情,
毕竟这是免费的服务。我不欠大家的,你们不用一上来就说我这个不行,那个不行的,不行我没逼你们用来着,是你们自己非要用。

虽然今天的话说的有点重了,不过 我还是要说一下,因为我实在不想再因为这些问题而影响心情,也不希望大家因为这样的问题失去解决问题的机会。
我喜欢有礼貌的交流和有根据的建议。如果你真的想提建议,我真心的希望能看看什么是Http。或者最少应该明白我为什么这样写代码,不要一上来就说你这不行,应该怎么样。
总结


找人办事总得先说几句好话吧,这样别人一高兴,肯定愿意帮你的几率就会大。
如果是想来找茬的,我看就没有必要了,因为这里我说了算,你占不了什么 上风。呵呵。

这文章写的  哎,头一回大晚上写文章,还这么郁闷的写。
算了,大家能听就听不能听也没事,还是一如既往的解决技术问题。

Httphelper头信息(ContentType)默认为text/html无懈可击的更多相关文章

  1. HTTP请求响应头信息

    HTTP请求响应头信息 请求:(request) 组成部分: 请求行 请求头 请求体 请求行:请求信息的第一行 格式:请求方式 访问的资源 协议/版本 例如:GET /day0801/1.html H ...

  2. HTTP请求头信息

    常用请求头 User-Agent : 浏览器信息Host : 服务区域名Referer : 通过哪里的链接过来的Origin : 跨域相关Content-Type : POST和PUT请求的数据类型C ...

  3. ajax--->http头信息的content-type是application/x-www-form-urlencoded或application/json区别

    ajax请求时http头信息的content-type是application/x-www-form-urlencoded或application/json区别 content-type请求头是干嘛的 ...

  4. HTTP协议的头信息详解

    转载地址:http://blog.csdn.net/guoguo1980/article/details/2649658 HTTP(HyperTextTransferProtocol)是超文本传输协议 ...

  5. 转: HTTP协议的头信息详解

    通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息.这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可 选的消息体组成.HTTP的头域包括通用头,请求头,响 ...

  6. 网络编辑基础:对HTTP协议的头信息详解

    HTTP(HyperTextTransferProtocol) 是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP 协议的详细内容请参 考RFC2616.HTTP协议采用了请求/响应模型 ...

  7. HTTP头信息(转)--1

    转自:http://www.cnblogs.com/9988/archive/2012/03/21/2409086.html 我用抓包软件抓了http的包,发现accept大多数有两种情况. 第一种: ...

  8. HTTP状态码、请求方法、响应头信息

    HTTP状态码 当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求.当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应 ...

  9. HTTP-Runoob:HTTP请求头信息

    ylbtech-HTTP-Runoob:HTTP请求头信息 1.返回顶部 1. HTTP 响应头信息 HTTP请求头提供了关于请求,响应或者其他的发送实体的信息. 在本章节中我们将具体来介绍HTTP响 ...

随机推荐

  1. 51nod 1272 最大距离 O(nlog(n)) , 快排 , 最大连续子串

    题目: 解法:排序,把值小的和索引小的放在前面,记录一下之前索引最小的就可以了. 没什么可以讲的,上代码吧: #include <bits\stdc++.h> using namespac ...

  2. split(":")[0].substring(1)

    java中拆分字符中的split(":")[0].substring(1)是什么意思啊,尤其[0] 可以解释一下吗?:比如你有一个字符串 "111:222:333&quo ...

  3. NetworkX-画图

    参考:https://blog.csdn.net/qq951127336/article/details/54586869 1.创建图 networkx有四种图 Graph .DiGraph.Mult ...

  4. 洛谷P2607 [ZJOI2008]骑士 基环树动归

    Code: #include<algorithm> #include<cstdio> #include<algorithm> #include<cstring ...

  5. (WC2016模拟十八)Gangsters of Treeland

    HINT: $1\leq N,Q\leq 10^5$ 原题:CodeChef November Challenge 2013 - MONOPLOY 题解: 其实这题是[SDOI2017]树点涂色的弱化 ...

  6. BZOJ 3529 [Sdoi2014]数表 (莫比乌斯反演+树状数组+离线)

    题目大意:有一张$n*m$的数表,第$i$行第$j$列的数是同时能整除$i,j$的所有数之和,求数表内所有不大于A的数之和 先是看错题了...接着看对题了发现不会做了...刚了大半个下午无果 看了Po ...

  7. HashMap和Hashtable的区别。

    HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable ...

  8. vue项目打包后想发布在apache www/vue 目录下

    使用的是vue-element-admin做示例,可以参考Vue项目根据不同运行环境打包项目,其他项目应该大同小异. 使用vue-router的browserHistory模式,配置mode: 'hi ...

  9. APK反编译去广告大揭秘

    APK反编译去广告 具体步骤: 1.下载 apktool 下载地址:https://code.google.com/p/android-apktool/downloads/list 2.通过apkto ...

  10. [Javascript] Required function arguments in Javascript

    In Javascript, all function arguments are optional by default. That means if you ever forget to pass ...