優酷專案整體架構

2022-06-20 20:12:09 字數 2717 閱讀 9628

"""

管理員檢視:

1、註冊

2、登陸

5、發布公告

使用者檢視:

1、註冊

2、登陸

3、會員充值

7、檢視觀影記錄

8、檢視公告

"""

優酷:

首先以註冊功能為例:

1、首先將使用者數的資料進行打包傳送到服務端中

2、服務端根據接受的資料首先進行解包,按照包內的資訊進行指定操作

3、呼叫邏輯層中的指定介面來進行操作,當遇到資料相關的操作,呼叫orm

4、當呼叫orm的時候,直接進行點操作,來進行對資料庫中某一塊進行操作

5、有來就有回,這時候將寫入的狀態進行逐層返回,知道返回到客戶端中的使用者介面。

orm:

orm(物件對映大致關係):

類 --> 資料庫中的一張表

物件 --> 表中的某一條資料

物件點屬性 --> 操作某條資料中的某乙個字段

資料庫中不能直接進行儲存類物件,所以這時候就出現了orm,將資料庫中的一張表通過一些操作對映成了乙個類

這就可以方便使用者可以直按照平時操作類的方式,來對資料庫中的資訊進行增刪改查等操作。

1、定義乙個欄位所擁有的相關屬性

2、自定義orm中需要的資料型別,在優酷中用到的:int、varchar

3、要定義乙個中介軟體方便使用者可以通過點操作來直接操作表中的資訊

4、在orm中比較關鍵的是元類的定義,通過判斷類命名空間中的內容是否是我需要的,是的話就要將所有的字段資訊放到自定義的容器中儲存起來

然後通過找出主鍵,和表名(主要是為了後面在model中操作的時候可以直接拿到表名稱進行查詢),

當找出了這些字段資訊之後,就產生了乙個問題--> 類命名空間中和我們定義的容器中產生了重複,所以這時候就需要手動去除一下重複的資料,

去玩重複資料之後,我們就可以將主鍵、存放字段型別的容器放到當前類命名空間中了(方便後面的呼叫)

cookie和session

cookie:

什麼是cookie:

cookie具體指的只是一段資訊,它是伺服器傳送出來儲存在瀏覽器上面的一組組的鍵值對,當你在下次訪問的伺服器的時候瀏覽器會自動攜帶這些鍵值對,以方便伺服器提取有用的資訊

cookie的原理:

cookie的工作原理:由伺服器產生內容,瀏覽器收到請求之後儲存在本地,當瀏覽器再次訪問的時候,瀏覽器會自動帶上cookie,這樣伺服器就能通過cookie的內容來判斷這個時候「誰」了。

session:

由來:cookie在一定程度上解決了「保持狀態」的需求,但是cookie本身最大支援4096位元組,以及cookie本身儲存在客戶端,會有被攔截或者竊取的可能,所以這時候就需要一種新的東西,他能支援更多的位元組,並且它是儲存在服務端的,安全性相比於cookie要更高,所以隨之產生了session

cookie連線橋:

http協議的無狀態特徵,伺服器根本就不知道訪問的是「誰」。那麼cookie就起到了連線橋的作用,我們可以給每個客戶端的cookie分配乙個唯一的id,這樣使用者在訪問的時候,通過這個cookie,伺服器就知道來的人是哪乙個了。之後我們在根據不同的cookie的id,在服務端上儲存一段時間的私密資料,(賬號、密碼等等)

總結:cookie彌補了http無狀態的不足,讓伺服器知道來的人是哪乙個;但是cookie以文字的形式儲存在本地,自身的安全性是比較差的;所以我們通過cookie識別不同的使用者,對應的session裡儲存相對的私密資訊以及超過4096位元組的文字

另外,cookie和session其實是共同性的東西,是不限於語言和框架的。

相對於優酷專案的cookie和session的大白話:

服務端要儲存客戶端登陸的一條資訊,然後返回到客戶端進行儲存,然後那個客戶端在進行別的操作就要帶上這個資訊一起傳送到服務端,服務端進行比較,如果一樣代表已經登陸過了,可以直接進行操作,如果沒有這個資訊就提示使用者先去登陸

主要的點就是在服務端的那個裝飾器的寫法,在每次使用者進行別的操作的時候,都要對那個唯一的加密內容進行驗證,如果:

def

login_auth(func):

@wraps(func)

def inner(*args, **kwargs): #

args: conn, back_dic

for value in user_data.alive_user.values(): #

[session, user_id]

if args[1].get('

session

') ==value[0]:

args[1]['

user_id

'] = value[1]

break

if args[1].get("

user_id"):

func(*args, **kwargs)

else

: back_dic =

send_msg(args[0], back_dic)

return inner

優酷路由寶怎麼繫結優酷土豆賬號?

很多人剛開始不知道是怎麼繫結帳號的,現在我告訴你帳號的綁程式設計客棧定方法吧,在繫結之前,建議你先用郵件申請乙個優酷的使用者帳號 繫結優酷程式設計客棧帳號的方法 1 因為預設的路由器管理ip與平常用不在同乙個網段,最程式設計客棧好的方法是把本地連線設定為自動獲取ip位址,找出閘道器位址 這個位址我已...

優酷筆試有感

今天去參加了優酷的筆試,感觸蠻深!基本上都是考的資料結構和演算法的題目,而其他的c c 的基本知識點差不多都沒有涉及到,所以如果要去這個公司的話 或者這種型別的公司 可得改改策略,好好準備下資料結構方面的知識。看來做遊戲開發更是看著這方面的基本功,平時用到的知識點和其他型別的公司差異較大。好了看看主...

訪優酷評論

html page xlanguage c autoeventwireup true codefile default.aspx.cs inherits default 後台 using system using system.collections.generic using system.lin...