Httphelper头信息(ContentType)默认为text/html无懈可击
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无懈可击的更多相关文章
- HTTP请求响应头信息
HTTP请求响应头信息 请求:(request) 组成部分: 请求行 请求头 请求体 请求行:请求信息的第一行 格式:请求方式 访问的资源 协议/版本 例如:GET /day0801/1.html H ...
- HTTP请求头信息
常用请求头 User-Agent : 浏览器信息Host : 服务区域名Referer : 通过哪里的链接过来的Origin : 跨域相关Content-Type : POST和PUT请求的数据类型C ...
- ajax--->http头信息的content-type是application/x-www-form-urlencoded或application/json区别
ajax请求时http头信息的content-type是application/x-www-form-urlencoded或application/json区别 content-type请求头是干嘛的 ...
- HTTP协议的头信息详解
转载地址:http://blog.csdn.net/guoguo1980/article/details/2649658 HTTP(HyperTextTransferProtocol)是超文本传输协议 ...
- 转: HTTP协议的头信息详解
通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息.这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可 选的消息体组成.HTTP的头域包括通用头,请求头,响 ...
- 网络编辑基础:对HTTP协议的头信息详解
HTTP(HyperTextTransferProtocol) 是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP 协议的详细内容请参 考RFC2616.HTTP协议采用了请求/响应模型 ...
- HTTP头信息(转)--1
转自:http://www.cnblogs.com/9988/archive/2012/03/21/2409086.html 我用抓包软件抓了http的包,发现accept大多数有两种情况. 第一种: ...
- HTTP状态码、请求方法、响应头信息
HTTP状态码 当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求.当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应 ...
- HTTP-Runoob:HTTP请求头信息
ylbtech-HTTP-Runoob:HTTP请求头信息 1.返回顶部 1. HTTP 响应头信息 HTTP请求头提供了关于请求,响应或者其他的发送实体的信息. 在本章节中我们将具体来介绍HTTP响 ...
随机推荐
- C# 热敏打印机 小票打印机 打印图片
最近一直在研究并口小票打印机打印图片问题,这也是第一次和硬件打交道,不过还好,最终成功了. 这是DEMO的窗体: 下面是打印所需要调用的代码: 因为我们这里主要是打印条形码和二维码,所以以条形码和二维 ...
- 操作Map
///操作Map Map<String,Object> userInfo = new HashMap(); userInfo.put("uid", adUserEnti ...
- javascript的var声明变量和不用var声明变量在全局作用域的区别;
在全局作用域下,使用var定义的变量不可以delete,没有var 定义的变量可以delete.也就说明隐含全局变量严格来说不是真正的变量,而是全局对象的属性,因为属性可以通过delete删除,而变量 ...
- HDU 6051 If the starlight never fade(原根+推式子)
题目大意: 设\(f(i)\)为使\((x+y)^i \equiv x^i (mod\ p)\)成立的(x,y)的对数.其中\(1 \leq x \leq p-1 , 1\leq y\leq m\), ...
- POJ 2228 Naptime(DP+环形处理)
题解 这题一眼望去DP. 发现自己太智障了. 这题想的是O(n^3m)的. 环形处理只会断环成链....然后DP也想的不好. 我们先考虑如果除去环这题该怎么做? dp[i][j][0/1]代表到第i小 ...
- [洛谷P1835]素数密度
题目大意:求区间[l,r]中素数的个数($1\leq l,r\le 2^{31}$,$r-l\leq 10^6$). 解题思路:首先,用筛法筛出$2~\sqrt{r}$内的素数. 然后用这些素数筛l~ ...
- pip 出错
pip 升级到10以上出错 ImportError: cannot import name 'main' 解决方法一: 降低pip的版本号 python -m pip install pip==9.0 ...
- 【转】C#正则表达式教程和示例
[转]C#正则表达式教程和示例 有一段时间,正则表达式学习很火热很潮流,当时在CSDN一天就能看到好几个正则表达式的帖子,那段时间借助论坛以及Wrox Press出版的<C#字符串和正则表达式参 ...
- mysql中的锁表语句查看方法汇总
mysql> show status like 'Table%'; +----------------------------+----------+ | Variable_name | Val ...
- C#-反射知识点
1.反射是基于Sytem.Type的,里面的很多方法是system.reflection里面的 MethodInfo[] tt= t.GetType().GetMethods(); //t是strin ...