精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Tomcat是怎樣處理搜索引擎爬蟲請(qǐng)求的?

開發(fā) 開發(fā)工具
每個(gè)置身于互聯(lián)網(wǎng)中的站點(diǎn),都需要搜索引擎的收錄,以及在適時(shí)在結(jié)果中的展現(xiàn),從而將信息提供給用戶、讀者。而搜索引擎如何才能收錄我們的站點(diǎn)呢?

每個(gè)置身于互聯(lián)網(wǎng)中的站點(diǎn),都需要搜索引擎的收錄,以及在適時(shí)在結(jié)果中的展現(xiàn),從而將信息提供給用戶、讀者。而搜索引擎如何才能收錄我們的站點(diǎn)呢?

這就涉及到一個(gè)「搜索引擎的爬蟲」爬取站點(diǎn)內(nèi)容的過程。只有被搜索引擎爬過并收錄的內(nèi)容才有機(jī)會(huì)在特定query***之后在結(jié)果中展現(xiàn)。

[[233840]]

這些搜索引擎內(nèi)容的工具,又被稱為爬蟲、Sprider,Web crawler 等等。我們一方面歡迎其訪問站點(diǎn)以便收錄內(nèi)容,一方面又因其對(duì)于正常服務(wù)的影響頭疼。畢竟 Spider 也是要占用服務(wù)器資源的, Spider 太多太頻繁的資源占用,正常用戶請(qǐng)求處理就會(huì)受到影響。所以一些站點(diǎn)干脆直接為搜索引擎提供了單獨(dú)的服務(wù)供其訪問,其他正常的用戶請(qǐng)求走另外的服務(wù)器。

說到這里需要提一下,對(duì)于是否是 Spider 的請(qǐng)求識(shí)別,是通過HTTP 請(qǐng)求頭中的User-Agent 字段來判斷的,每個(gè)搜索引擎有自己的獨(dú)立標(biāo)識(shí)。而且通過這些內(nèi)容,管理員也可以在訪問日志中了解搜索引擎爬過哪些內(nèi)容。

此外,在對(duì)搜索引擎的「爬取聲明文件」robots.txt中,也會(huì)有類似的User-agent 描述。比如下面是taobao 的robots.txt描述

  1. User-agent:  Baiduspider 
  2. Allow:  /article 
  3. Allow:  /oshtml 
  4. Disallow:  /product/ 
  5. Disallow:  / 
  6.  
  7. User-Agent:  Googlebot 
  8. Allow:  /article 
  9. Allow:  /oshtml 
  10. Allow:  /product 
  11. Allow:  /spu 
  12. Allow:  /dianpu 
  13. Allow:  /oversea 
  14. Allow:  /list 
  15. Disallow:  / 
  16.  
  17. User-agent:  Bingbot 
  18. Allow:  /article 
  19. Allow:  /oshtml 
  20. Allow:  /product 
  21. Allow:  /spu 
  22. Allow:  /dianpu 
  23. Allow:  /oversea 
  24. Allow:  /list 
  25. Disallow:  / 
  26.  
  27. User-Agent:  360Spider 
  28. Allow:  /article 
  29. Allow:  /oshtml 
  30. Disallow:  / 
  31.  
  32. User-Agent:  Yisouspider 
  33. Allow:  /article 
  34. Allow:  /oshtml 
  35. Disallow:  / 
  36.  
  37. User-Agent:  Sogouspider 
  38. Allow:  /article 
  39. Allow:  /oshtml 
  40. Allow:  /product 
  41. Disallow:  / 
  42.  
  43. User-Agent:  Yahoo!  Slurp 
  44. Allow:  /product 
  45. Allow:  /spu 
  46. Allow:  /dianpu 
  47. Allow:  /oversea 
  48. Allow:  /list 
  49. Disallow:  / 

我們?cè)賮砜?Tomcat對(duì)于搜索引擎的請(qǐng)求做了什么特殊處理呢?

對(duì)于請(qǐng)求涉及到 Session,我們知道通過 Session,我們?cè)诜?wù)端得以識(shí)別一個(gè)具體的用戶。那 Spider 的大量請(qǐng)求到達(dá)后,如果訪問頻繁同時(shí)請(qǐng)求量大時(shí),就需要?jiǎng)?chuàng)建巨大量的 Session,需要占用和消耗很多內(nèi)存,這無形中占用了正常用戶處理的資源。

為此, Tomcat 提供了一個(gè) 「Valve」,用于對(duì) Spider 的請(qǐng)求做一些處理。

首先識(shí)別 Spider 請(qǐng)求,對(duì)于 Spider 請(qǐng)求,使其使用相同的 SessionId繼續(xù)后面的請(qǐng)求流程,從而避免創(chuàng)建大量的 Session 數(shù)據(jù)。

這里需要注意,即使Spider顯式的傳了一個(gè) sessionId過來,也會(huì)棄用,而是根據(jù)client Ip 來進(jìn)行判斷,即對(duì)于 相同的 Spider 只提供一個(gè)Session。

我們來看代碼:

  1. // If the incoming request has a valid session ID, no action is required 
  2. if (request.getSession(false) == null) { 
  3.  
  4.     // Is this a crawler - check the UA headers 
  5.     Enumeration<String> uaHeaders = request.getHeaders("user-agent"); 
  6.     String uaHeader = null
  7.     if (uaHeaders.hasMoreElements()) { 
  8.         uaHeader = uaHeaders.nextElement(); 
  9.     } 
  10.  
  11.     // If more than one UA header - assume not a bot 
  12.     if (uaHeader != null && !uaHeaders.hasMoreElements()) { 
  13.         if (uaPattern.matcher(uaHeader).matches()) { 
  14.             isBot = true
  15.             if (log.isDebugEnabled()) { 
  16.                 log.debug(request.hashCode() + 
  17.                         ": Bot found. UserAgent=" + uaHeader); 
  18.             } 
  19.         } 
  20.     } 
  21.  
  22.     // If this is a bot, is the session ID known? 
  23.     if (isBot) { 
  24.         clientIp = request.getRemoteAddr(); 
  25.         sessionId = clientIpSessionId.get(clientIp); 
  26.         if (sessionId != null) { 
  27.             request.setRequestedSessionId(sessionId); // 重用session 
  28.         } 
  29.     } 
  30.  
  31. getNext().invoke(request, response); 
  32.  
  33. if (isBot) { 
  34.     if (sessionId == null) { 
  35.         // Has bot just created a session, if so make a note of it 
  36.         HttpSession s = request.getSession(false); 
  37.         if (s != null) { 
  38.             clientIpSessionId.put(clientIp, s.getId()); //針對(duì)Spider生成session 
  39.             sessionIdClientIp.put(s.getId(), clientIp); 
  40.             // #valueUnbound() will be called on session expiration 
  41.             s.setAttribute(this.getClass().getName(), this); 
  42.             s.setMaxInactiveInterval(sessionInactiveInterval); 
  43.  
  44.             if (log.isDebugEnabled()) { 
  45.                 log.debug(request.hashCode() + 
  46.                         ": New bot session. SessionID=" + s.getId()); 
  47.             } 
  48.         } 
  49.     } else { 
  50.         if (log.isDebugEnabled()) { 
  51.             log.debug(request.hashCode() + 
  52.                     ": Bot session accessed. SessionID=" + sessionId); 
  53.         } 
  54.     } 

判斷Spider 是通過正則

  1. private String crawlerUserAgents = 
  2.     ".*[bB]ot.*|.*Yahoo! Slurp.*|.*Feedfetcher-Google.*"
  3. // 初始化Valve的時(shí)候進(jìn)行compile 
  4. uaPattern = Pattern.compile(crawlerUserAgents); 

這樣當(dāng) Spider 到達(dá)的時(shí)候就能通過 User-agent識(shí)別出來并進(jìn)行特別處理從而減小受其影響。

這個(gè) Valve的名字是:「CrawlerSessionManagerValve」,好名字一眼就能看出來作用。

其他還有問題么?我們看看,通過ClientIp來判斷進(jìn)行Session共用。

最近 Tomcat 做了個(gè)bug fix,原因是這種通過ClientIp的判斷方式,當(dāng) Valve 配置在Engine下層,給多個(gè)Host 共用時(shí),只能有一個(gè)Host生效。 fix之后,對(duì)于請(qǐng)求除ClientIp外,還有Host和 Context的限制,這些元素共同組成了 client標(biāo)識(shí),就能更大程度上共用Session。

修改內(nèi)容如下:

總結(jié)下, 該Valve 通過標(biāo)識(shí)識(shí)別出 Spider 請(qǐng)求后,給其分配一個(gè)固定的Session,從而避免大量的Session創(chuàng)建導(dǎo)致我資源占用。

默認(rèn)該Valve未開啟,需要在 server.xml中 增加配置開啟。另外我們看上面提供的 正則 pattern,和taobao 的robots.txt對(duì)比下,你會(huì)出現(xiàn)并沒有包含國內(nèi)的這些搜索引擎的處理,這個(gè)時(shí)候怎么辦呢?

在配置的時(shí)候傳一下進(jìn)來就OK啦,這是個(gè)public 的屬性

  1. public void setCrawlerUserAgents(String crawlerUserAgents) { 
  2.     this.crawlerUserAgents = crawlerUserAgents; 
  3.     if (crawlerUserAgents == null || crawlerUserAgents.length() == 0) { 
  4.         uaPattern = null
  5.     } else { 
  6.         uaPattern = Pattern.compile(crawlerUserAgents); 
  7.     } 

 【本文為51CTO專欄作者“侯樹成”的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)通過作者微信公眾號(hào)『Tomcat那些事兒』獲取授權(quán)】

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2019-09-26 09:34:51

網(wǎng)絡(luò)爬蟲搜索引擎大數(shù)據(jù)

2014-08-05 15:10:05

Larbin搜索引擎

2011-06-20 18:23:06

SEO

2010-08-02 16:08:39

ibmdwJava搜索引擎

2016-08-18 00:54:59

Python圖片處理搜索引擎

2024-12-20 14:34:40

2011-05-17 17:40:59

搜索引擎信任度

2009-02-19 09:41:36

搜索引擎搜狐百度

2009-09-22 16:23:52

搜索引擎

2011-05-10 12:55:13

反向鏈接

2011-05-10 12:32:56

搜索引擎反向鏈接

2017-08-07 08:15:31

搜索引擎倒排

2020-03-20 10:14:49

搜索引擎倒排索引

2010-06-13 16:27:28

搜索引擎

2016-12-26 13:41:19

大數(shù)據(jù)搜索引擎工作原理

2012-09-07 13:22:21

搜索搜狗

2022-10-08 09:13:18

搜索引擎?站

2010-04-20 11:43:46

2020-02-24 08:52:08

開源索引YaCy

2015-08-31 10:41:58

搜索引擎Google云應(yīng)用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

日本中文字幕精品| 精品国产一区二区亚洲人成毛片| 精品国产乱码久久久久久蜜柚| 日韩无码精品一区二区三区| 你懂的视频欧美| 欧美在线三级电影| 免费看污污视频| 午夜av免费观看| 久久精品久久99精品久久| 久久91精品国产91久久久| 99re久久精品国产| 欧美亚洲福利| 精品久久久久久久久久久久| 神马影院我不卡| 肥臀熟女一区二区三区| 男女性色大片免费观看一区二区 | 偷拍一区二区三区四区| 丝袜美腿玉足3d专区一区| 精品人妻一区二区三区麻豆91| 性欧美暴力猛交另类hd| 欧美老少配视频| 91麻豆精品国产91久久综合| 国产劲爆久久| 在线播放亚洲一区| 国产天堂在线播放| 国产丝袜在线观看视频| 中文字幕高清一区| 精品国产乱码久久久久久108| 五月婷婷色丁香| 欧美国产一区二区三区激情无套| 日韩精品免费一线在线观看| 中文字幕第10页| 久久三级毛片| 91高清视频免费看| 国产99久久九九精品无码| 五月婷婷视频在线观看| 国产精品久久久爽爽爽麻豆色哟哟| 国内精品视频在线播放| www.黄色片| 激情久久五月天| 国产精品狠色婷| 高清乱码免费看污| 国产精品免费看| 久久久视频在线| 一区二区视频免费看| 欧美丰满老妇| 最近2019年日本中文免费字幕 | 欧美激情在线一区二区| 麻豆一区区三区四区产品精品蜜桃| www精品国产| 国产精品888| 92看片淫黄大片欧美看国产片| 中文字幕视频免费观看| 日韩成人一级大片| 国产精品久久久久久久久久久久久 | 亚洲精品精品亚洲| 在线观看成人免费| 宅男网站在线免费观看| 专区另类欧美日韩| 国产欧美自拍视频| 色网在线观看| 亚洲影院理伦片| 九九热只有这里有精品| heyzo在线播放| 精品久久久久久中文字幕| 国精产品一区一区三区视频| aa国产成人| 日韩欧美国产网站| 久久综合伊人77777麻豆最新章节| 91精品影视| 欧美老人xxxx18| 一个人看的视频www| 1769国产精品视频| 亚洲激情在线观看视频免费| 国产精品一区二区人妻喷水| 妖精视频一区二区三区| 国产一区二区三区中文 | 亚洲精品写真福利| 免费在线黄网站| 激情国产在线| 91激情在线视频| 超碰在线公开97| 精品中文在线| 亚洲精品大尺度| 手机看片福利视频| 欧美va天堂| 欧美激情在线有限公司| 黄瓜视频在线免费观看| 久久99久久精品| 国产精品日韩一区二区| 欧美日韩在线精品一区二区三区激情综 | 国产在线超碰| 亚洲免费在线观看| 亚洲国产精品久久久久婷蜜芽| 亚洲成av在线| 日韩欧美国产综合一区| 在线免费观看麻豆| 欧美一区成人| 日韩av高清不卡| 国产男男gay网站| 97se亚洲国产综合自在线不卡| 视频一区亚洲 | 日韩欧美网站| 欧美国产在线视频| 成人免费一区二区三区| 高清久久久久久| 精品网站在线看| 免费看美女视频在线网站 | 亚洲欧美另类在线视频| 国内精品视频666| 欧美久久久久久久| 免费在线中文字幕| 在线免费观看一区| 男人网站在线观看| 婷婷精品进入| 国产成人一区二| 色综合免费视频| 亚洲三级电影网站| 国产性生交xxxxx免费| 欧美1区二区| 精品中文字幕在线2019| 中文字幕在线天堂| 99久久久免费精品国产一区二区 | 蜜桃传媒一区二区亚洲| 最新国产乱人伦偷精品免费网站| 国产精品永久免费观看| 邻家有女韩剧在线观看国语| 亚洲国产色一区| 深夜做爰性大片蜜桃| 欧美少妇xxxx| 国产不卡在线观看| 亚洲区小说区图片区| 亚洲一区二区在线视频| 国产女同无遮挡互慰高潮91| 欧美中文一区二区| 欧美综合激情网| 日韩美女一级视频| 亚欧色一区w666天堂| 在线观看欧美一区二区| 91精品国产乱码久久久久久| 国产精品亚洲自拍| 91伦理视频在线观看| 欧美艳星brazzers| 国产精品一二三区在线观看| 国产欧美日韩亚洲一区二区三区| 国产精品对白刺激久久久| 最近中文字幕免费mv2018在线 | 樱花草www在线| 国产精品精品国产一区二区| 国产欧美日韩中文| 免费观看在线黄色网| 欧美片网站yy| 日本在线一级片| 国产精品伊人色| 欧美人体做爰大胆视频| www亚洲国产| 国产精品一区二区三区www| 色偷偷噜噜噜亚洲男人| 一级视频在线播放| 亚洲色大成网站www久久九九| 亚洲图色中文字幕| 女主播福利一区| 成人91视频| 伊人成综合网站| 亚洲男人天堂手机在线| 国产精品51麻豆cm传媒| 中文字幕亚洲欧美在线不卡| 亚洲热在线视频| 韩日精品视频| 欧美午夜视频在线| 色8久久久久| 欧美日韩xxxxx| 五月婷婷在线观看视频| 欧洲一区二区av| 久久中文免费视频| 成人国产视频在线观看| 色诱视频在线观看| 91成人免费| 精品国产一区二区三区麻豆免费观看完整版 | 婷婷精品进入| 国产美女在线精品免费观看| 原纱央莉成人av片| 久久激情视频久久| 日本精品999| 欧美亚洲一区二区三区四区| 成人在线观看高清| 99国产精品久久久| av免费一区二区| 亚洲另类视频| 亚洲三区在线观看| 成人春色在线观看免费网站| 国产成人中文字幕| 91精品久久| 精品丝袜一区二区三区| 一起草av在线| 欧美日韩一区二区免费在线观看| 国产第一页精品| av网站免费线看精品| 黄大色黄女片18第一次| 日韩一区二区久久| 综合色婷婷一区二区亚洲欧美国产| 国产精品自在| 成人免费黄色网| 周于希免费高清在线观看 | 大陆极品少妇内射aaaaaa| 美女视频免费精品| 91精品视频免费观看| 三妻四妾完整版在线观看电视剧| 久久亚洲精品成人| 可以在线观看的av网站| 日韩欧美激情在线| 91av久久久| 一本一本大道香蕉久在线精品| 久久久久亚洲av片无码下载蜜桃| 亚洲国产精品黑人久久久| xxxx黄色片| 国产成人精品www牛牛影视| 天天干天天干天天干天天干天天干| 精品成人国产| 小泽玛利亚av在线| 久久大综合网| 色综合久久av| 国产精品欧美三级在线观看| 91精品国产综合久久久久久丝袜| 天然素人一区二区视频| 26uuu另类亚洲欧美日本一| 青青在线视频| 裸体女人亚洲精品一区| 人人干在线视频| 在线观看精品国产视频| 欧美婷婷久久五月精品三区| 亚洲а∨天堂久久精品喷水| 99久久99久久久精品棕色圆| 欧美日韩一级黄| 中文字幕久久久久| 在线精品观看国产| 亚洲欧美日韩一区二区三区四区| 欧美性xxxxhd| 国产免费av一区| 欧美日韩亚洲国产一区| 精品91久久久| 黑人巨大精品欧美一区免费视频| 日韩免费一二三区| 亚洲电影一级黄| www.天天色| 五月天婷婷综合| 欧美福利视频一区二区| 精品国产成人av| 九一国产在线观看| 色999日韩国产欧美一区二区| 成年人视频在线免费看| 色婷婷综合久久久久中文一区二区 | 亚洲av无码一区东京热久久| 国产丶欧美丶日本不卡视频| 国产一级片中文字幕| 国产成人久久精品77777最新版本| 国产又粗又猛又爽又黄| 国产91在线|亚洲| 大乳护士喂奶hd| 欧美色网一区| 亚洲免费av电影| 免费福利在线观看| 中文字幕日韩av| 超碰porn在线| 欧美精品久久一区二区| zzzwww在线看片免费| 日本国产欧美一区二区三区| 黄色精品视频| 91在线视频一区| 国产精品宾馆| 日本不卡二区高清三区| 欧美激情黄色片| 日本一区午夜艳熟免费| 性高湖久久久久久久久| 亚洲国产精品三区| 国产成人啪午夜精品网站男同| 日韩精品视频一区二区| 国产日产精品一区| 在线看的片片片免费| 婷婷久久综合九色综合伊人色| www毛片com| 欧美一区二区三区在线视频| 天天操天天干天天插| 一道本无吗dⅴd在线播放一区| 成人直播在线| 欧美做爰性生交视频| av一级久久| 久久精品magnetxturnbtih| 日韩在线高清| 青青青免费在线| 精品亚洲成a人| 在线免费观看a级片| 中文在线资源观看网站视频免费不卡 | 中文字幕免费不卡| 久久午夜无码鲁丝片| 在线国产电影不卡| 日本xxxxxwwwww| 日韩在线观看免费全| 亚洲性受xxx喷奶水| 91久久久亚洲精品| 国产麻豆一区二区三区精品视频| 自拍偷拍视频在线| 免费精品视频| 中文字幕18页| 国产精品乱码久久久久久| 色婷婷av国产精品| 日韩视频一区二区三区| 91涩漫在线观看| 日本精品视频在线播放| 91嫩草精品| 在线观看一区二区三区三州| 免费视频久久| 伦理片一区二区| 亚洲精品免费看| 亚洲字幕av一区二区三区四区| 日韩精品高清视频| 国产日产一区二区| 国产精品户外野外| 蜜桃tv一区二区三区| 欧美久久在线观看| 国产精品69久久久久水密桃| 日韩精品久久久久久久的张开腿让| 欧美色另类天堂2015| 中文字幕av网址| 欧美精品一区二区三区久久久竹菊| 久久婷婷国产精品| av高清不卡在线| 久久久久久久福利| 欧美一区二区在线不卡| 在线观看a视频| 国产www精品| 欧美人妖在线| 久久精品99国产| 91视频你懂的| 久久久久女人精品毛片九一| 精品视频www| 密臀av在线播放| 久久久久久久免费| 国产精品毛片在线| 性欧美13一14内谢| 欧美综合亚洲图片综合区| 黄色大片在线看| 国产精品爱啪在线线免费观看| 蜜臀av免费一区二区三区 | 美女高潮视频在线看| 国产精品综合久久久久久| 亚洲午夜伦理| 国产性生活毛片| 欧美丝袜一区二区三区| 男人av在线| 国产精品久久久久久av下载红粉 | 国产一区精品二区| 国产精品啪啪啪视频| 国产999精品久久久久久| 中文字幕第28页| 亚洲精品久久视频| 日韩在线影院| 一本一道久久a久久精品综合| 九色综合狠狠综合久久| 欧美精品成人久久| 亚洲国产高潮在线观看| av高清不卡| 亚洲欧洲国产精品久久| 国产乱子伦视频一区二区三区| 久久久久久久久久久久国产| 欧美精品一区二区三区很污很色的 | 日韩欧美精品在线观看| jizz在线观看视频| 91久久在线播放| 伊人成人在线视频| 亚洲成人网在线播放| 欧美视频日韩视频在线观看| 免费在线观看黄| 国产精品免费一区二区三区四区| 亚洲第一精品影视| 国产传媒国产传媒| 91精品国产手机| 成年人黄色大片在线| 日韩中文字幕一区二区| 国产精品69久久久久水密桃| 免费在线不卡视频| 日韩在线观看免费| 欧美黄色网视频| 国产小视频精品| 亚洲高清免费视频| 成年人视频在线免费观看| 91久色国产| 黄色一级a毛片| 久久6免费高清热精品| 一区二区三区日本久久久| 色天使在线观看| 无码av中文一区二区三区桃花岛| 最新真实国产在线视频| 国产麻豆日韩| 久久99国产精品尤物| 青青操免费在线视频| www亚洲精品| 亚洲最大在线| 国产污在线观看| 5858s免费视频成人|