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响 ...
随机推荐
- jquery 几种类选择器方式
代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestClas ...
- 树上倍增求LCA
大概思想就是,节点$i$的第$2^{j}$个父节点是他第$2^{j-1}$个父亲的第$2^{j-1}$个父亲 然后可以$O(nlogn)$时间内解决…… 没了? //fa[i][j]表示i的第2^j个 ...
- BZOJ 1195 [HNOI2006]最短母串 (Trie图+状压+bfs最短路)
BZOJ1195 LOJ10061 题目大意:给你$n$个模式串,求一个最短且字典序最小的文本串并输出这个串,$n<=12,len<=50$ 首先对所有模式串构造$Trie$图,$Trie ...
- 获取mapper
static UpdateLogMapper updateLogMapper = (UpdateLogMapper)SpringContextUtil.getBean(UpdateLogMapper. ...
- mysql 密码的破解
现在的主流的数据库一般是mysql ,sql server , oracle. 有的时候我们忘记了数据库密码的时候我们要怎么办,破解别人的数据库的密码的时候我们要怎么搞 忘记密码是一件很头痛的 ...
- 做一个可复用的 echarts-vue 组件(延迟动画加载)
在 vue 项目使用 echarts 的场景中,以下三点不容忽视:1. 可视化的数据往往是异步加载的:2. 若一个页面存在大量的图表( 尤其当存在关系图和地图时 ),往往会导致该页面的渲染速度很慢并可 ...
- 最强最全干货分享:Android开发书籍、教程、工具等
最全干货分享,本文收集整理了Android开发所需的书籍.教程.工具.资讯和周刊各种资源,它们能让你在Android开发之旅的各个阶段都受益. 入门<Learning Android(中文版)& ...
- [AngularJS] ng-ture-value & ng-false-value
When you have a checkbox, not necessary that just 'ture' & 'false', you might have 'yes', 'no', ...
- [React] Optimistic UI update in React using setState()
In this lesson we will refactor an existing UI update from a typical loading approach to an optimist ...
- swift入门-实现简单的登录界面
// // AppDelegate.swift // UIWindow import UIKit @UIApplicationMain class AppDelegate: UIResponder, ...