成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

故障排查 從錯誤碼406說起

移動開發(fā) 網(wǎng)絡(luò)
前一段時間,我突然接到運(yùn)營的同事通報,滬江的一位老師在國外登錄不上了滬江帳號。這本來是很普通的故障,但是在排查問題過程并不簡單,我們意外獲得了不少收獲,在這里與大家分享。

背景

前一段時間,我突然接到運(yùn)營的同事通報,滬江的一位老師在國外登錄不上了滬江帳號。這本來是很普通的故障,但是在排查問題過程并不簡單,我們意外獲得了不少收獲,在這里與大家分享。

我們首先判斷,從故障現(xiàn)象來看,應(yīng)該和后端無關(guān),而是與前端有關(guān),所以我們迅速查看了前端的日志,從日志來看,主要是用于判斷客戶端的地理位置接口持續(xù)出現(xiàn)錯誤,出現(xiàn)大量的HTTP Status Code 406(24小時之內(nèi)出現(xiàn)了1w多條)。按照HTTP Status Code的規(guī)范,4開頭的錯誤碼和客戶端有關(guān),考慮到這個故障只出現(xiàn)在一位老師那里,初步判斷406就是問題的根源。

隨著掌握信息的增加,分析的加深,我們迅速解決了那位外教的故障,不幸的是,確認(rèn)它和406沒有關(guān)系。

但是,我們并不能就此打住。畢竟正常情況下響應(yīng)的HTTP Status Code應(yīng)該是200,那么大量的406到底是什么呢?為什么我們都無法復(fù)現(xiàn)?它們是如何引發(fā)的?如此大量的爆發(fā)應(yīng)當(dāng)引起用戶的反饋了?為什么線上的反饋這么平靜呢?

下圖為日志平臺中406錯誤的情況

從錯誤碼406說起

排查過程

為了保障性能,我們的 Node 端并沒有詳細(xì)記錄每個請求,所以單純看406的日志并不能知道具體的原因。為了排查這個問題,我們緊急發(fā)布了在線補(bǔ)丁,具體記錄每個請求的詳細(xì)信息,然后在日志平臺中看到了下面的請求

從錯誤碼406說起

為了便于對比,我們在瀏覽器上截取了正常的請求。如下圖

從錯誤碼406說起

仔細(xì)對比這兩個請求,結(jié)合錯誤碼406的定義,我們的目光集中到了 Accept 這個header

日志中

而正常瀏覽器的行為

于是,我們在 Postman 中模擬了錯誤的請求,果然,我們復(fù)現(xiàn)了406錯誤,所以可以確認(rèn)問題是 Accept 字段導(dǎo)致。

406 Not Acceptable 狀態(tài)碼表示客戶端錯誤,表示請求的資源的內(nèi)容特性無法滿足請求頭中的條件,因而無法生成響應(yīng)實(shí)體。 譯自HTTP協(xié)議規(guī)范RFC文檔

我們上網(wǎng)查閱資料并也跟后端同事討論了406的錯誤碼,得知,如果請求頭的 Accept 不符合事先約定的契約,就會返回406錯誤。報錯的是 API 服務(wù),返回的是 application/json 格式的數(shù)據(jù), 然而請求中的 Accept 說明它并不支持這種格式,所以會報出406錯誤。

我們仔細(xì)檢查了常見瀏覽器發(fā)送的請求,發(fā)現(xiàn)全部都包含 Accept: */* ;。看來,這些引發(fā)406的請求并不是普通用戶發(fā)出來的。那么,究竟是誰發(fā)出了這些請求呢?

難道是CDN?

CDN 的全稱是Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)。 其目的是使用戶可就近取得所需內(nèi)容,解決Internet網(wǎng)絡(luò)擁擠的狀況,提高用戶訪問網(wǎng)站的響應(yīng)速度。 CDN 網(wǎng)絡(luò)可以將服務(wù)器的內(nèi)容緩存到分布全球的CDN節(jié)點(diǎn),根據(jù)用戶的訪問 IP,就近連接 CDN,提高網(wǎng)站響應(yīng)速度。(引用自google.com)

從錯誤碼406說起

如今CDN已經(jīng)是各種公司的普遍配置,滬江也不例外。我們仔細(xì)研究了引發(fā)406的請求來源IP,發(fā)現(xiàn)都是來自北京聯(lián)通的少數(shù)節(jié)點(diǎn)。這樣看來,CDN的嫌疑很大,大概有兩種可能:1、原始請求頭部的Accept 字段就是錯的;2、原始請求頭部的 Accept 字段是對的,但是在經(jīng)過 CDN 節(jié)點(diǎn)的時候被 CDN 篡改了。由于以前遇到過 CDN 篡改頭部的問題,我們初步判斷是 CDN 的問題。

接下來,我們將北京聯(lián)通的節(jié)點(diǎn)暫時回源,驗(yàn)證是不是 CDN 篡改了頭部,同時也拿到了最終的用戶 IP。 上網(wǎng)搜索這個IP詳細(xì)的信息,上面赫然寫著某搜索引擎的爬蟲。原來,406并不是來自于普通用戶,而是搜索引擎的爬蟲。

花絮

在寫文章的這幾天,發(fā)現(xiàn)錯誤日志下降了很多,406錯誤都沒有了。以為某某搜索引擎幡然悔悟,于是用當(dāng)時出錯的 IP 去日志平臺搜索,發(fā)現(xiàn)該搜索引擎只是換了個策略。它的 Accept 字段做了修改,UA 頭中加上了該搜索引擎特有的標(biāo)識,搖身一變又成了正規(guī)的搜索引擎。

從錯誤碼406說起

小結(jié)

對開發(fā)人員來說,當(dāng)站點(diǎn)遇到大量的406錯誤的時候,不用太擔(dān)心,好好查下日志,它很有可能是搜索引擎的爬蟲導(dǎo)致的。

總結(jié)下本次406錯誤碼事件,某搜索引擎在爬取滬江頁面的時候,請求頭設(shè)置 Accept 與后端服務(wù)所接受的 Accept 字段不同,從而導(dǎo)致大量的406錯誤。

***詳細(xì)講解下Header中 Accept 的相關(guān)知識

Accept

header中用它來告知客戶端可以處理的內(nèi)容類型,這種內(nèi)容類型用MIME類型來表示(引用自MDN)

內(nèi)容類型

text/html,application/xhtml+xml,application/xml 都是 MIME 類型,也可以稱為媒體類型和內(nèi)容類型。

示例中,application的是類型,json是子類型。它說明,客戶端只能夠接收application/json這種類型的響應(yīng)。如果服務(wù)端不能返回這種類型的響應(yīng),服務(wù)端應(yīng)當(dāng)返回406錯誤。

通配符 * 代表任意類型

例如:Accept: / 代表瀏覽器可以處理所有類型

Accept可以支持用,分隔的多個類型

借助內(nèi)容協(xié)商機(jī)制,服務(wù)器可以從諸多備選項(xiàng)中選擇一項(xiàng)進(jìn)行應(yīng)用,并使用 Content-Type 應(yīng)答頭通知客戶端它的選擇。

它說明,客戶端能夠接收的響應(yīng)類型只有三種:text/html,application/xhtml+xml,application/xml。

因子權(quán)重(q)

q是一個0-1之間的數(shù)值, q的默認(rèn)值是1, q=0代表不可接受,q 值越大,請求越傾向于獲得其“;”之前的類型表示的內(nèi)容

它說明,客戶端優(yōu)先選擇text/html格式的響應(yīng),其次是application/xhtml+xml,***才是application/xml,*/*。

責(zé)任編輯:未麗燕 來源: 技術(shù)沙龍
相關(guān)推薦

2025-01-02 10:37:13

2020-06-30 11:36:45

錯誤碼合理開發(fā)

2017-09-05 14:59:34

2022-12-28 08:17:19

異常處理code

2012-11-07 09:51:59

Amazon宕機(jī)

2022-01-17 06:58:35

C語言函數(shù)錯誤碼

2022-03-08 08:02:44

Java系統(tǒng)錯誤碼

2018-11-15 10:13:20

機(jī)房服務(wù)器異常

2010-08-30 19:51:08

DHCP故障

2010-09-16 10:46:47

2024-06-28 09:25:51

2012-07-26 10:27:31

PHP

2009-05-31 09:53:38

DB2故障處理錯誤碼

2023-01-29 23:51:07

微服務(wù)框架Go

2022-04-18 09:07:54

Linux網(wǎng)絡(luò)延遲

2010-10-14 13:55:24

無線故障排查

2021-09-26 19:39:58

MogDB故障數(shù)據(jù)庫

2019-12-09 10:40:15

YAMLBashKubernetes

2010-09-27 13:25:39

無線信號

2012-03-19 21:06:52

Android
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 国产高清免费视频 | 国产精品毛片无码 | 九久久| 一级看片免费视频 | 久久久青草婷婷精品综合日韩 | 久久夜视频| caoporn国产精品免费公开 | 一级黄在线观看 | 不卡的av在线 | 成人免费一级 | 日韩中文字幕一区二区 | 国产精品大全 | 精品久久久久香蕉网 | 久婷婷 | 日韩中文字幕一区二区三区 | 国产精品久久久久久久久久妇女 | 国产精品一区二区久久久久 | 成人在线观看免费视频 | 国产免费人成xvideos视频 | 国产欧美在线播放 | 欧美视频一区二区三区 | 成人精品 | 亚洲国产精品一区在线观看 | 国产精品久久久久久福利一牛影视 | 天天曰夜夜操 | 中文字幕亚洲一区二区三区 | 一级片免费在线观看 | 国产精品成人一区二区三区吃奶 | 国产一区二区成人 | 日韩成人在线播放 | 激情五月婷婷综合 | 成人欧美一区二区三区黑人孕妇 | 欧美高清一级片 | 搞av.com| 9久9久9久女女女九九九一九 | 欧美黑人狂野猛交老妇 | 最新中文字幕一区 | 国产精品久久久 | 欧美色人 | 久久久久久久久久久久久九 | 国产欧美一区二区三区在线看 |