热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Httphelper头信息(ContentType)默认为text/html无懈可击

Httphelper头信息(ContentType)默认为texthtml无懈可击转http:www.sufeinet.comthread-8623-1

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里最简单最傻瓜的一个,因为他在任意一个抓包软件中都会清楚的显示出来。
 
而这里面需要我们注意的并不多,其中最需要我们注意的就是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。或者最少应该明白我为什么这样写代码,不要一上来就说你这不行,应该怎么样。
总结


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

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

转:https://www.cnblogs.com/coky/p/6721657.html



推荐阅读
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • MVC设计模式的介绍和演化过程
    本文介绍了MVC设计模式的基本概念和原理,以及在实际项目中的演化过程。通过分离视图、模型和控制器,实现了代码的解耦和重用,提高了项目的可维护性和可扩展性。详细讲解了分离视图、分离模型和分离控制器的具体步骤和规则,以及它们在项目中的应用。同时,还介绍了基础模型的封装和控制器的命名规则。该文章适合对MVC设计模式感兴趣的读者阅读和学习。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • C# WPF自定义按钮的方法
    本文介绍了在C# WPF中实现自定义按钮的方法,包括使用图片作为按钮背景、自定义鼠标进入效果、自定义按压效果和自定义禁用效果。通过创建CustomButton.cs类和ButtonStyles.xaml资源文件,设计按钮的Style并添加所需的依赖属性,可以实现自定义按钮的效果。示例代码在ButtonStyles.xaml中给出。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 解决文件名过长下载失败问题的jQuery方案
    本文介绍了使用jQuery解决文件名过长导致下载失败的问题。原方案中存在文件名部分丢失的问题,通过动态生成隐藏域表单并提交的方式来解决。详细的解决方案和代码示例在文章中给出。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
author-avatar
手机用户2502884923
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有