http请求

HTTP协议

非 Y 不嫁゛ 提交于 2020-01-02 12:45:19
HTTP协议 基本概念 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。 是用于从WWW服务器传输超文本到本地浏览器的传送协议 。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。 特点 : HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系。 HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。(默认HTTP的端口号为80,HTTPS的端口号为443。) HTTP协议永远都是客户端发起请求,服务器回送响应。这样就限制了使用HTTP协议,无法实现在客户端没有发起请求的时候,服务器将消息推送给客户端。 工作流程 一次HTTP操作称为一个事务,其工作过程可分为四步: 1)首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。 2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。 3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号

Python_爬虫1

喜你入骨 提交于 2020-01-02 05:25:53
Urllib库的基本使用 那么接下来,小伙伴们就一起和我真正迈向我们的爬虫之路吧。 1.分分钟扒一个网页下来 怎样扒网页呢?其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是一幅幅优美的画面,但是其实是由浏览器解释才呈现出来的,实质它 是一段HTML代码,加 JS、CSS,如果把网页比作一个人,那么HTML便是他的骨架,JS便是他的肌肉,CSS便是它的衣服。所以最重要的部分是存在于HTML中的,下面我 们就写个例子来扒一个网页下来。 import urllib2 response = urllib2.urlopen("http://www.baidu.com") print response.read() 是的你没看错,真正的程序就两行,把它保存成 demo.py,进入该文件的目录,执行如下命令查看运行结果,感受一下。 python demo.py 看,这个网页的源码已经被我们扒下来了,是不是很酸爽? 2.分析扒网页的方法 那么我们来分析这两行代码,第一行 response = urllib2.urlopen("http://www.baidu.com") 首先我们调用的是urllib2库里面的urlopen方法,传入一个URL,这个网址是百度首页,协议是HTTP协议,当然你也可以把HTTP换做FTP,FILE,HTTPS 等等,只是代表了一种访问控制协议

细说 ASP.NET控制HTTP缓存

会有一股神秘感。 提交于 2020-01-02 05:12:06
在上篇博客 【细说 ASP.NET Cache 及其高级用法】 中, 我给大家介绍了ASP.NET Cache,这种服务端使用的缓存API 。在我们开发一个ASP.NET网站的过程中,其实有很多地方都是可以使用缓存的, 只是由于ASP.NET是一种基于服务端的开发平台,自然我们也经常在服务端的代码中使用各类缓存技术, 然而,由于WEB应用程序的服务对象是客户端的浏览器,通常来说,我们并不能直接控制浏览器的行为,但是, 浏览器却可以根据后台网站的指示,采取一些优化的方式来更快地呈现页面。 客户端浏览器也有自己的缓存机制,通常浏览器也使用缓存来优化一些页面的显示过程, 不过,我们并不能直接使用C#代码控制浏览器的缓存操作,但我们可以告诉浏览器如何使用缓存,从而达到优化网站性能的目的。 这次博客的主题是:用ASP.NET控制HTTP请求过程中浏览器缓存的一些方法。 正常的HTTP请求过程 在开始介绍浏览器在HTTP请求过程前,我想有必要先来看一下浏览器请求一个普通ASPX页面的过程。 说明:本文在介绍HTTP请求过程时,会大量使用Fiddler来分析具体的请求过程。 上图是一个普通的ASPX页面的请求过程,说它普通是因为:我在创建这个页面后,没对它做任何缓存方面的处理。 图片中我们可以可以看到服务器的响应状态为:HTTP/1.1 200 OK,这是一个服务器成功响应的标志。 另外

nodejs HTTP服务

早过忘川 提交于 2020-01-02 01:38:09
nodejs中的HTTP服务 nodejs最重要的方面之一是具有非常迅速的实现HTTP和HTTPS服务器和服务的能力。http服务是相当低层次的,你可能要用到不同的模块,如express来实现完整的Web服务器,http模块不提供处理路由、cookie、缓存等的调用。我们主要用http模块的地方是实现供应用程序使用的后端Web服务。 1.处理URL 统一资源定位符(URL)为把一个请求发到正确的服务器的特定端口上,并访问合适的数据提供了所有需要的信息。一个URL可以被分解成几个不同的组成部分,每个部分都为Web服务器如何路由和处理来自客户端的HTTP请求提供一块基本的信息。node提供了url模块,提供了把一个URL字符串转换成一个URL对象的功能。 要从一个URL字符串创建URL对象,把URL字符串作为第一个参数下面的方法: url.parse(urlStr,[parseQueryString],[slashesDenoteHost) 其中,parseQueryString参数是一个布尔值,如果为true,那么也把URL的查询字符串部分解析为对象字面量,默认值为false。 slashesDenoteHost参数也是一个布尔值,如果为true,那么就会把格式为//host/path的URL解析为{host:'host',pathname:'/path'},而不是{pathname

HTTP基础知识

允我心安 提交于 2020-01-02 01:37:54
1.HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。 HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。 通信流程: Http协议由Http请求和Http响应组成,当在浏览器中输入网址访问某个网站时, 你的浏览器会将你的请求封装成一个Http请求发送给服务器站点,服务器接收到请 求后会组织响应数据封装成一个Http响应返回给浏览器。即没有请求就没有响应。 2.HTTP请求与响应: 客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成,例: Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9 Connection: //保持连接 keep-alive Cookie: //重要! LIVE_BUVID=AUTO7915222124019414; fts

Scrapy突破反爬虫的限制

末鹿安然 提交于 2020-01-01 03:24:00
7-1 爬虫和反爬的对抗过程以及策略 基本概念 爬虫:自动获取网站数据的程序,关键是批量的获取 反爬虫:使用技术手段防止爬虫程序的方法 误伤:反爬技术将普通用户识别为爬虫,如果误伤过高,效果再好也不能用 一般ip地址禁止是不太可能被使用的 成本:反爬虫需要的人力和机器成本 拦截:成功拦截爬虫,一般拦截率越高,误伤率越高 初级爬虫:简单粗暴,不管服务器压力,容易弄挂网站 数据保护: 失控的爬虫:由于某些情况下,忘记或者无法关闭的爬虫 商业竞争对手 爬虫和反爬虫对抗过程 挺有趣的过程 7-2 scrapy架构源码分析 Scrapy Engine: 这是引擎,负责Spiders、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等等!(像不像人的身体?) Scheduler(调度器): 它负责接受引擎发送过来的requests请求,并按照一定的方式进行整理排列,入队、并等待Scrapy Engine(引擎)来请求时,交给引擎。 Downloader(下载器):负责下载Scrapy Engine(引擎)发送的所有Requests请求,并将其获取到的Responses交还给Scrapy Engine(引擎),由引擎交给Spiders来处理, Spiders:它负责处理所有Responses,从中分析提取数据,获取Item字段需要的数据

Jmeter接口测试

戏子无情 提交于 2019-12-31 23:24:34
接口测试是什么 1.1接口  API(Application Program Interface)接口属于操作系统的程序接口。  GUI (Graphic User Interface)接口,属于一种图形接口。  2者都是用户接口。有时候公司将API作为为公共接口,对外开放。 1.2接口测试 接口测试是测试系统组件间的一种测试 接口测试主要用于检查外部系统和系统之间以及内部各个子系统之间的交互点。 1.3接口测试目的  提供测试效率,提供用户体验度,减少研发成本  对系统接口进行全面(功能,安全,性能)高效的持续的测试;  接口测试是一个完整的系统,包括了功能测试,部分的安全测试,性能测试。  可以发现很多页面上发现不了的bug  检查系统的异常处理能力  前端随意变,接口测好了,后端不用变 1.4接口测试工具 HTTPWatch,Fildder,浏览器自带F12,BurpSuit、LoadRunner,Soapui、jmeter,postman 1.4.1客户端请求消息 请求消息包括以下格式:请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据4个部分组成。如图1所示: 1.4.2服务端响应消息: HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。如图2所示: 1.4.3请求方法

Jmeter接口测试

若如初见. 提交于 2019-12-31 23:22:28
接口测试是什么 1.1接口  API(Application Program Interface)接口属于操作系统的程序接口。  GUI (Graphic User Interface)接口,属于一种图形接口。  2者都是用户接口。有时候公司将API作为为公共接口,对外开放。 1.2接口测试 接口测试是测试系统组件间的一种测试 接口测试主要用于检查外部系统和系统之间以及内部各个子系统之间的交互点。 1.3接口测试目的  提供测试效率,提供用户体验度,减少研发成本  对系统接口进行全面(功能,安全,性能)高效的持续的测试;  接口测试是一个完整的系统,包括了功能测试,部分的安全测试,性能测试。  可以发现很多页面上发现不了的bug  检查系统的异常处理能力  前端随意变,接口测好了,后端不用变 1.4接口测试工具 HTTPWatch,Fildder,浏览器自带F12,BurpSuit、LoadRunner,Soapui、jmeter,postman 1.4.1客户端请求消息 请求消息包括以下格式:请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据4个部分组成。如图1所示: 1.4.2服务端响应消息: HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。如图2所示: 1.4.3请求方法

cookie path

倾然丶 夕夏残阳落幕 提交于 2019-12-31 21:40:45
以前使用cookie的时候 没有在意path的问题。这次公司商城实现了静态化的功能,多了2级目录。导致了我在商品详情页面设置好的cookie(path为/good/商品ID/)在店铺首页竟然访问不到(店铺首页的path为'/store/')。cookie的名称都是一致的。唯一不同的只有path。在商品详情页设置cookie的时候吧path设置成‘/’,这样修改之后就可以正常的在店铺首页取到设置好的cookie了。 使用关键字 javascript cookie path 还搜索到了,原来10年来IE一直存在一个cookie path的一个bug(原文地址:http://conkeyn.iteye.com/blog/423549)。 手上一个广告项目,在Firefox下顺利测试通过。自信JS代码能兼容IE,FF测试过后随手就仍给CS测试,结果CS反馈说有问题。排查一番, 发现居然和Javascript 设置 Cookie 时的 path 有关。IE下Cookie种在 /或者URL所在路径时正常,如果Cookie值作用域在当前URL下则IE下javascript 无法获取到设置的Cookie值。 看下面演示代码: Js代码 var cookie_name = "name" ; var cookie_value = "value" ; expires = new Date();

网站性能优化你需知道的东西

♀尐吖头ヾ 提交于 2019-12-31 21:10:22
本文提到的网站性能指网站的响应速度,这也符合绝大部分人对于网站性能的理解:访问快速的网站性能好,反之,访问速度越慢,则网站性能越差。本文总结的优化方法是宏观的工程层面的方法,并不包含微观的语言语法层面的方法,例如,JS、CSS的语法优化,这一部分同样影响网站的性能,但语言语法层面的优化更多的是取决于开发人员的编程水平。 什么样的网站响应速度快呢?其实很容易想到,网站加载资源的速度越快,网站响应速度越快;网站需要加载的资源越少,网站响应速度越快。这就分别对应网站性能优化的两大方向:资源缓存、资源合并压缩。当浏览器完成资源的加载后,需要进一步解析资源,才能渲染出最终的网页,所以,浏览器的解析机制也是网站性能优化的一个方向。各种优化方法都可以归类到这三个大方向中。 1.资源缓存 1.1 使用CDN 将网站的静态资源分离,如静态HTML、图片Image、样式CSS、脚本JS等,把静态资源部署到CDN中,可以明显加快这部分资源的加载速度。 1.2 利用HTTP缓存机制 HTTP缓存会把浏览器加载过的资源缓存到本地,下次加载时,只要缓存的资源没有过期,就可以直接使用本地的资源,减少了HTTP请求次数,加快了资源加载速度。具体做法是设置HTTP Header 中的Cache-Control参数。HTTP 1.0 中使用Pragma和Expires两个参数进行缓存,不过早已不推荐使用。 2.