2016-04-25 18 views
0

當你製作一個簡單的套接字服務器並且你得到一個http請求時,這非常煩人。非常煩人,如果你的服務器不支持http請求。有沒有辦法檢測和拒絕HTTP請求(從網頁瀏覽器),只接受TCP /套接字連接?我可以拒絕一個簡單的套接字服務器上的HTTP請求嗎?

+0

這是絕對可能的,如果你看看http請求規範,它只是在代碼中查找http請求標題並關閉這些連接 – ControlAltDel

+0

@ControlAltDel - 那將意味着接受連接並閱讀足夠的內容來理解它的http。不知道這是OP的意圖 – radai

+0

@radai雅我知道。我們基本上是說同樣的事情 – ControlAltDel

回答

1

不,因爲您不知道客戶端打算通過套接字發送的有效負載,直到您接受了連接並讀取了足夠的內容以瞭解其通話HTTP。

在我看來,你應該覺得沮喪的客戶正在經歷,做兩件事情:

  1. 爲什麼瀏覽器被定向到您的(顯然不是HTTP)服務?你能阻止它嗎?
  2. 假設上面#1的答案是否定的,也許對http請求實現一些簡單的檢測,並使用硬編碼的http響應進行響應,該響應在發送它的瀏覽器上呈現爲可讀錯誤? (是的,即使你的服務不是http) - 一個簡單的檢測就是將你的輸入緩衝區,解碼爲us-ascii字符串,並且如果它從9個HTTP請求方法之一開始發送一些硬編碼的http錯誤響應。我建議錯誤代碼402 - 支付所需:-)
相關問題