日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

记录一次http请求失败的问题分析

發布時間:2023/11/28 生活经验 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 记录一次http请求失败的问题分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題背景

當前我有一個基于Flask編寫的Restful服務,由于業務的需求,我需要將該服務打包成docker 鏡像進行離線部署,原始服務的端口是在6661端口進行開啟,為了區分,在docker中啟動的服務使用了端口映射,將宿主機上的6665端口映射到docker容器中已啟動服務的6661端口.

假設宿主機的ip地址為:192.168.124.234,即如果我請求宿主機的http://192.168.124.234:6665/api/hello,實際上是訪問docker容器中的XXXX:6661/api/hello

docker服務啟動完成后的顯示如下:

問題描述

在組內使用自行部署的接口管理工具中(yapi)進行接口請求,接口顯示請求異常,并且該條請求在服務內部日志中也沒有顯示,但是同樣的請求api在其他多種方式下均可正常請求。

ps: yapi是通過瀏覽器打開的網頁進行訪問的,yapi如果希望在網頁上進行訪問接口需要安裝yapi指定的chrome插件方可在chrome瀏覽器中進行訪問

正確結果

  1. 當docker完成啟動之后我通過postman進行訪問,可以正確得到結果:
  2. 當我在其他機器乃至docker宿主機上通過curl進行請求,也可以正確得到結果

問題初判斷

由于通過yapi訪問訪問部署在其他機器的服務均沒有問題,并且通過postman、curl進行請求api也沒有問題所以肯定的是服務本身是沒有問題的

所以初步判斷問題如下:

  • 問題1: api請求是否正確到達docker容器中的服務?
  • 問題2: api請求沒有正確到達宿主機?
  • 問題3: api請求沒有正確的傳出chrome瀏覽器?(ps:由于請求其他服務器的接口沒有問題,最開始并沒有這樣的懷疑

問題解決

問題1:api請求是否正確到達docker容器中的服務?

由于docker容器中的服務log中沒有請求的日志信息記錄,所以api請求一定是沒有到達docker容器中的服務

問題2:api請求沒有正確到達宿主機?

這里需要通過借用tcpdump進行數據抓包,我們通過下面的命令進行監聽eno1接口的所有數據包并將數據寫入到1.pcap文件中

tcpdump -i eno1 -w 1.pcap

然后我們通過wireshark軟件對數據包進行分析

發現我們在使用yapi在chrome中進行接口請求時候,我們并沒有抓到請求6665端口的數據包

而我們使用postman或者curl進行訪問的時候進行訪問的時候都完整的抓到了數據包,所以結論是:通過yapi進行api請求沒有正確到達宿主機

問題3:api請求沒有正確的傳出chrome瀏覽器?

由于yapi在chrome瀏覽器中發出的請求,是通過chrome插件進行的,所以我們使用F12查看chrome的debug頁面是看不見請求結果的,無論怎么請求都沒有反應。

所以我們通過查看chrome插件的debug頁面,然后點擊“發送”按鈕還是沒有反應



經過搜索發現chrome插件的調試還有一個background頁面可以進行調試,關于chrome插件的backgroud信息可以看這里,我們在插件上用鼠標右鍵調出如下界面:

然后點擊"背景頁",出現如下界面:


這時候當我們點擊yapi中的“發送”按鈕時候,在這個頁面中終于發現了報錯信息:

說是(failed)net::ERR_UNSAFE_PORT,也就是我請求的這個端口不安全

這才反應到可能是我的端口設置問題,經過搜索發現:

6665——6669這幾個端口是IRC協議使用的缺省端口,存在很大的安全風險,很容易被木馬程序利用,被谷歌火狐瀏覽器屏蔽掉了

這真是太坑了,千算萬算沒算到竟然是端口設置的問題,然后被chrome瀏覽器屏蔽了訪問

于是我將端口換了一個,問題完美解決。

收獲

后端服務的端口千萬不要隨便設置
后端服務的端口千萬不要隨便設置
后端服務的端口千萬不要隨便設置

參考

6665——6669端口為什么用不了

【干貨】Chrome插件(擴展)開發全攻略

總結

以上是生活随笔為你收集整理的记录一次http请求失败的问题分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。