2016-01-17 45 views
0

我有一個JS,html和CSS對運行良好,併爲用戶提供了一個交互式網頁。我可以使用python -m SimpleHTTPServer來爲它們服務,這很棒。現在,我想測量我的網站的用戶數量。爲此,我認爲我需要一些服務器代碼。所以,我轉向了蟒蛇龍捲風。我很困惑我應該用哪個HTTP協議來發送這個協議。大多數樣板代碼具有GET和POST方法,如下所示:在python龍捲風每次訪問時記錄用戶瀏覽器ID

class MainHandler(tornado.web.RequestHandler): 

def get(self): 

    self.render("index.html") 

# 
# HTTP *POST* HANDLER 
# 
def post(self): 
    print "Post received" 
    post_body = self.get_argument("body") 
    if post_body: 
     print "post body : %s..." % post_body[0:400] 

而且我知道龍捲風有這些我們很好的異步版本。哪一個最適合向服務器表明具有某個瀏覽器cookie的用戶訪問過該頁面?如果答案是GET,我將如何區分來自第一次加載頁面的GET請求的請求?

此外,有沒有什麼比獨特的瀏覽器cookie來區分不涉及創建一個帳戶的用戶?

回答

1

要從位置欄/鏈接瀏覽器導航到網站,請使用GET。您可以通過檢測區分訪問cookie in RequestHandler

class MainHandler(tornado.web.RequestHandler): 
    def get(self): 
     if self.get_cookie('visited'): 
      # this is not first visit 
      print('not first visit') 
     else: 
      self.set_cookie('visited', '1'): 
      # first visit 
      print('for the first time') 
     self.render("index.html") 

Cookie似乎是正確的方法。當然用戶可以修改/刪除cookie。其他方法如基於ip + user_agent的身份驗證,也有缺點 - 在共享ip上失敗。

最後,如果你計劃一個簡單的主頁計數器,去你自己實現它。但是,如果不是這樣,真正的功能完整的解決方案可以解決與您(和您將面對的其他問題)相同的問題,即使用適當的工具 - 請參閱piwik(開源)或Google Analytics,請點擊...