精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Django框架之會話技術(shù)之Cookie與Session

開發(fā) 架構(gòu)
會話(Session)跟蹤是Web程序中常用的技術(shù),用來跟蹤用戶的整個會話。常用的會話跟蹤技術(shù)是Cookie與Session。Cookie通過在客戶端記錄信息確定用戶身份,Session通過在服務(wù)器端記錄信息確定用戶身份。

[[410882]]

會話(Session)跟蹤是Web程序中常用的技術(shù),用來跟蹤用戶的整個會話。常用的會話跟蹤技術(shù)是Cookie與Session。Cookie通過在客戶端記錄信息確定用戶身份,Session通過在服務(wù)器端記錄信息確定用戶身份。

會話跟蹤技術(shù)

什么是會話跟蹤技術(shù)

我們可以把會話理解為客戶端與服務(wù)器之間的一次會晤,在一次會晤中可能會包含多次請求和響應(yīng)。

例如,我們給10086打電話,我就是客戶端,而10086服務(wù)人員就是服務(wù)端。從雙方接通電話那一刻起,會話就開始了,到某一方掛斷電話標(biāo)識會話結(jié)束。在通話過程中,我們會向10086發(fā)出多個請求,那么多個請求都在一個會話中。

在Web中,客戶使用瀏覽器向某一服務(wù)器發(fā)出第一個請求開始,會話就開始了,直到客戶關(guān)閉了瀏覽器會話結(jié)束。

在一個會話的多個請求中共享數(shù)據(jù),這就是會話跟蹤技術(shù)。

例如,在一個會話中的請求如下:請求銀行主頁。

1)請求登錄(請求參數(shù)是用戶名和密碼);

2)請求轉(zhuǎn)賬(請求參數(shù)與轉(zhuǎn)賬相關(guān)的數(shù)據(jù));

3)請求信用卡還款(請求參數(shù)與還款相關(guān)的數(shù)據(jù))。

在上面會話中,當(dāng)前用戶信息必須在這個會話中共享的,因為登錄的是張三,那么在轉(zhuǎn)賬和還款時一定是張三的轉(zhuǎn)賬和還款,這就說明我們必須在一個會話過程中共享數(shù)據(jù)的能力。

會話路徑技術(shù)使用Cookie或session完成

在Web應(yīng)用中,HTTP協(xié)議是無狀態(tài)的,即每次請求都是獨立的,無法記錄前一次請求的狀態(tài),每次請求都是一次新的請求。

無狀態(tài)原因:瀏覽器與服務(wù)器是使用Socket套接字進(jìn)行通信的,服務(wù)器將請求結(jié)果返回給瀏覽器之后,會關(guān)閉當(dāng)前的Socket連接,而且服務(wù)器也會在處理頁面完畢之后銷毀頁面對象。

但是,有時候我們需要知道上次請求狀態(tài),比如用戶是否登錄過,瀏覽過哪些商品等。可以使用會話跟蹤,可以使用Cookie、Session、token(自定義的session)。

Cookie

什么叫做Cookie

Cookie,翻譯成中文小甜點,小餅干的意思。在HTTP中它表示服務(wù)器送給客戶端瀏覽器的小甜點。

Cookie是客戶端會話技術(shù),數(shù)據(jù)都存儲在客戶端,以key-value進(jìn)行存儲。支持過期時間max_age,默認(rèn)請求會攜帶本網(wǎng)站的所有cookie,cookie不能跨域名,不能跨瀏覽器,cookie默認(rèn)不支持中文,base64。

Cookie是由服務(wù)器創(chuàng)建,通過服務(wù)端的響應(yīng)發(fā)送給客戶端瀏覽器的一個鍵值對,然后瀏覽器會把Cookie保存起來,并標(biāo)注出Cookie的來源(哪個服務(wù)器的Cookie),當(dāng)客戶端下一次再訪問服務(wù)器時,默認(rèn)請求會攜帶本這個服務(wù)器的所有Cookie,這樣服務(wù)器就可以識別客戶端了。

設(shè)置cookie應(yīng)該是服務(wù)器response,獲取cookie應(yīng)該在瀏覽器request,刪除cookie應(yīng)該在服務(wù)器response。

Cookie規(guī)范

  • Cookie大小上限為4KB;
  • 一個服務(wù)器最多在客戶端瀏覽器上保存20個Cookie;
  • 一個瀏覽器最多保存300個Cookie;

上面的數(shù)據(jù)只是HTTP的Cookie規(guī)范,但是,在瀏覽器百家爭鳴的當(dāng)下,一些瀏覽器為了爭奪一份份額,展現(xiàn)自己的優(yōu)勢,可能對Cookie的規(guī)范擴展,例如每個Cookie的大小為8KB,最多可保存500個Cookie等!但也不會出現(xiàn)把你硬盤占滿的可能!

注意,不同瀏覽器之間是不共享Cookie的。也就是說在你使用IE訪問服務(wù)器時,服務(wù)器會把Cookie發(fā)給IE,然后由IE保存起來,當(dāng)你在使用FireFox訪問服務(wù)器時,不可能把IE保存的Cookie發(fā)送給服務(wù)器

Cookie與HTTP頭

Cookie是通過HTTP請求頭和響應(yīng)頭在客戶端和服務(wù)器端傳遞的:

Set-Cookie:響應(yīng)頭,服務(wù)器端發(fā)送給客戶端;

Cookie:請求頭,客戶端發(fā)送給服務(wù)器端;格式:Cookie: a=A; b=B; c=C。即多個Cookie用分號隔開;

一個Cookie對象一個Set-Cookie:Set-Cookie: a=A Set-Cookie: b=B Set-Cookie: c=C;

Cookie的覆蓋

如果服務(wù)器端發(fā)送重復(fù)的Cookie那么會覆蓋原有的Cookie,例如客戶端的第一個請求服務(wù)器端發(fā)送的Cookie是:Set-Cookie: a=A;第二請求服務(wù)器端發(fā)送的是:Set-Cookie: a=AA,那么客戶端只留下一個Cookie,即:a=AA。

請求流程

第一次請求:

① 瀏覽器第一次請求服務(wù)器的時候,不會攜帶任何cookie信息,,請求頭中沒有任何cookie信息;

② 當(dāng)服務(wù)器接受到這個請求之后,會做一些驗證,例如進(jìn)行用戶名和密碼的驗證,驗證沒有問題則可以設(shè)置cookie信息。

③ 服務(wù)器會為響應(yīng)設(shè)置cookie信息,響應(yīng)頭中有set_cookie信息。

③ 我們的瀏覽器接收到這個響應(yīng)之后,發(fā)現(xiàn)響應(yīng)中有cookie信息,瀏覽器會將cookie信息保存起來。

后續(xù)請求:① 第二次或之后的請求都會攜帶cookie信息,請求頭中有cookie信息;

② 服務(wù)器接受到請求之后,會發(fā)現(xiàn)請求中攜帶cookie信息,這樣就認(rèn)識是誰的請求了。

代碼實現(xiàn)

login.html文件:

  1. <!DOCTYPE html> 
  2. <html lang="en"
  3. <head> 
  4.     <meta charset="UTF-8"
  5.     <title>登錄界面</title> 
  6.     <style> 
  7.         #loginbox{ 
  8.             width: 350px; 
  9.             height: 200px; 
  10.             border: 1px solid red; 
  11.             margin: 90px auto; 
  12.             text-align: center; 
  13.         } 
  14.  
  15.     </style> 
  16. </head> 
  17.  
  18. <body> 
  19.     <div id="loginbox"
  20.         <h2>登錄界面</h2> 
  21.         <form action="" method="post"
  22.             {% csrf_token %} 
  23.             帳 號:<input type="text" name="username"
  24.             <br/> 
  25.             密 碼:<input type="password" name="password"
  26.             <br/> 
  27.             <br/> 
  28.             <input type="submit" value="登錄">   
  29.             <input type="button" value="注冊"
  30.         </form> 
  31.     </div> 
  32. </body> 

home.html文件:

  1. <!DOCTYPE html> 
  2. <html lang="en"
  3. <head> 
  4.     <meta charset="UTF-8"
  5.     <title>首頁</title> 
  6.  
  7. </head> 
  8. <body> 
  9.     歡迎 
  10.     {% if username %} 
  11.         {{ username }} 
  12.     {% else %} 
  13.         游客 
  14.     {% endif %} 
  15.     訪問~~ 
  16.     <br> 
  17.     <a href="{% url 'user:logout' %}">退出</a> 
  18. </body> 
  19. </html> 

views.py:

  1. def login(request): 
  2.     if request.method == 'GET'
  3.         return render(request, 'login.html'
  4.  
  5.     elif request.method == 'POST'
  6.         username = request.POST.get('username'
  7.         password = request.POST.get('password'
  8.  
  9.         if username and password:   # 此處為了方便測試,沒有去數(shù)據(jù)庫進(jìn)行校驗,實際的需要去數(shù)據(jù)庫校驗用戶名和密碼之類的 
  10.             ''
  11.                 響應(yīng)體: 
  12.                 return HttpResponse() 
  13.                 return render() 
  14.                 return redirect()     
  15.                都可以            
  16.              
  17.             ''
  18.             response = redirect(reverse('user:home')) 
  19.  
  20.             # 設(shè)置cookie信息 
  21.             response.set_cookie('username', username) 
  22.             is_login = True 
  23.             response.set_cookie('is_login', is_login) 
  24.  
  25.             return response 
  26.  
  27.         return render(request, 'login.html'
  28.  
  29. def home(request): 
  30.     # 獲取cookie信息 
  31.     is_login = request.COOKIES.get('is_login'
  32.     username = request.COOKIES.get('username'
  33.  
  34.     if is_login: 
  35.         return render(request, 'home.html', {'username': username}) 
  36.  
  37.     return redirect(reverse('user:login')) 
  38.  
  39. def logout(request): 
  40.     response = redirect(reverse('user:login')) 
  41.     # 刪除cookie信息 
  42.     response.delete_cookie('is_login'
  43.     response.delete_cookie('username')  # 注銷,最好都刪除,避免注冊之后下次還會攜帶未刪除的信息 
  44.  
  45.     return response 

我們可以看到第一次打開登錄頁面的時候,不攜帶Cookie信息(csrf暫忽略):

我們再登錄,即提交表單之后,服務(wù)器設(shè)置了Cookie(可參考上面設(shè)置Cookie信息代碼):

退出,即刪除Cookie信息,這里只刪除is_login的信息

上面是以明文的方式顯示,我們可以進(jìn)行加鹽設(shè)置,以加密形式顯示:

  1. def login(request): 
  2.     if request.method == 'GET'
  3.         return render(request, 'login.html'
  4.  
  5.     elif request.method == 'POST'
  6.         username = request.POST.get('username'
  7.         response = redirect(reverse('user:home')) 
  8.         #response.set_cookie('username', username) 
  9.         #set_signed_cookie(key,value,salt='加密鹽',...)  
  10.         response.set_signed_cookie('username', username, 'qmpython'
  11.  
  12.         return response 
  13.  
  14.  
  15. def home(request): 
  16.     username = request.COOKIES.get('username'
  17.     # 解密 
  18.     #username = request.get_signed_cookie('username''qmpython')     
  19.     response = HttpResponse(f'{username}登錄成功'
  20.     return response 

Cookie:具體一個瀏覽器針對一個服務(wù)器存儲key-value。

注意,不同瀏覽器之間是不共享Cookie的。也就是說在你使用IE訪問服務(wù)器時,服務(wù)器會把Cookie發(fā)給IE,然后由IE保存起來,當(dāng)你在使用Chrome訪問服務(wù)器時,不可能把IE保存的Cookie發(fā)送給服務(wù)器。

同一個瀏覽器訪問A網(wǎng)站,又去訪問B網(wǎng)站,不可能將A的cookie信息攜帶發(fā)送給B服務(wù)器。

默認(rèn)情況下,Cookie只在瀏覽器的內(nèi)存中存活,也就是說,當(dāng)你關(guān)閉瀏覽器后,Cookie就會消失!

問題一:如果只是關(guān)閉網(wǎng)站(關(guān)閉標(biāo)簽頁),沒有退出瀏覽器呢?

A:并不會,如果在不關(guān)閉瀏覽器,只關(guān)閉頁面時,清除cookie。可以使用js事件處理:

  1. <script> 
  2. window.onunload = function(){ 
  3.     //窗口關(guān)閉 
  4.     //在這發(fā)一個ajax請求,后臺清除cookie 
  5. </script> 

set_cookie參數(shù):

  1. class HttpResponseBase: 
  2.     def set_cookie(self,  
  3.                    key,  # 鍵 
  4.                    value='', # 值 
  5.                    max_age=None, # cookie有效時長,單位為秒,默認(rèn)為None表示關(guān)閉瀏覽器失效,指定          為有效數(shù)值100表示100秒后自動失效 
  6.                     
  7.                    expires=None, # 支持一個datetime或timedelta,可以指定一個具體的日期,           expires=timedelta(days=10)表示十天后過期。 
  8.                    # max-age和exepires兩個指定一個。 
  9.                     
  10.                    path='/',  # Cookie生效的路徑,瀏覽器只會把cookie回傳給帶有該路徑的頁面,這樣可以避免將;cookie傳給站點中的其他的應(yīng)用。;/ 表示根路徑,特殊的:根路徑的cookie可以被任何url的頁面訪問 
  11.                     
  12.                    domain=None,  ''' Cookie生效的域名;你可用這個參數(shù)來構(gòu)造一個跨站cookie。 
  13.                      如, domain=".example.com" 
  14.                      所構(gòu)造的cookie對下面這些站點都是可讀的: 
  15.                      www.example.com 、 www2.example.com  
  16.                 和an.other.sub.domain.example.com 。 
  17.                      如果該參數(shù)設(shè)置為 None ,cookie只能由設(shè)置它的站點讀取。 
  18.                    ''
  19.                     
  20.                    secure=False,  # 如果設(shè)置為True,瀏覽器將通過HTTPS來回傳cookie 
  21.                    httponly=False, # 只能http協(xié)議傳輸,無法被js獲取(不是絕對的,底層抓包可以獲取到也可以被覆蓋) 
  22.                    samesite=None 
  23.                   ):pass 

練習(xí):使用cookie實現(xiàn)上次登錄時間

  1. def home(request): 
  2.     # 獲取cookie信息 
  3.     username = request.COOKIES.get('username'
  4.     last_login_time = request.COOKIES.get('last_login_time'''
  5.     response = render(request, 'home.html', {'username': username, 'last_login_time': last_login_time}) 
  6.  
  7.     from datetime import datetime 
  8.     now = datetime.now().strftime('%Y-%m-%d %H:%M:%S'
  9.     response.set_cookie('last_login_time', now) 
  10.  
  11.     return response 

Session

前面介紹了Cookie,為什么還需要Session呢?其實很多情況下,只使用Cookie便能完成大部分需求。但是,只使用Cookie往往是不夠的,考慮用戶登錄信息或一些重要的敏感信息,用Cookie存儲的話會帶來一些問題,最明顯的是由于Cookie會把信息保存到本地,因此信息的安全性可能受到威脅。Session的出現(xiàn)很好地解決的這個問題,Session與Cookie類似。

Session是服務(wù)器端技術(shù),利用這個技術(shù),服務(wù)器在運行時可以為每一個用戶的瀏覽器創(chuàng)建一個其獨享的session對象,由于session為用戶瀏覽器獨享,所以用戶在訪問服務(wù)器的web資源時,可以把各自的數(shù)據(jù)放在各自的session中,當(dāng)用戶再去訪問該服務(wù)器中的其他web資源時,其他WEB資源再從用戶各自session中取出數(shù)據(jù)為用戶服務(wù)。

Session是服務(wù)端會話技術(shù),依賴于Cookie,如果在瀏覽器中**禁用cookie**的話,那么session就失效了,因為它需要瀏覽器的cookie值去session里做對比。

1. 啟用Session

Django默認(rèn)啟用Session,可以在設(shè)置文件settings.py:

  1. MIDDLEWARE = [ 
  2.      
  3.     'django.contrib.sessions.middleware.SessionMiddleware'
  4.  

如果禁用session,則注釋即可。

2. 存儲方式

在settings.py文件中,可以設(shè)置session數(shù)據(jù)的存儲方式,可以保存在數(shù)據(jù)庫、本地緩存等。

2.1 數(shù)據(jù)庫

默認(rèn)是存儲在數(shù)據(jù)庫中的。

  1. SESSION_ENGINE='django.contrib.sessions.backends.db' 

如果存儲在數(shù)據(jù)庫中,則需要安裝Session應(yīng)用,默認(rèn)已設(shè)置:

  1. INSTALLED_APPS = [ 
  2.  
  3.     'django.contrib.sessions'

在進(jìn)行數(shù)據(jù)庫遷移的時候,Django自動幫我們生成了django_session表,有3個字段,分別為session_key,session_data,expris_date,Django中session的默認(rèn)過期時間是14天。

遷移數(shù)據(jù)庫后,就會生成django_session表:

3. 請求流程

第一次請求:

① 我們第一次請求的時候可能會攜帶一些信息(例如用戶名/密碼),cookie中沒有任何信息。

② 當(dāng)服務(wù)器接受到這個請求之后,會做一些驗證,例如進(jìn)行用戶名和密碼的驗證,驗證沒有問題則可以設(shè)置session信息。

③ 在設(shè)置session信息的同時(session信息保存在服務(wù)器端),服務(wù)器會在響應(yīng)頭中設(shè)置一個sessionid的cookie信息。

④ 客戶端(瀏覽器)在接收到響應(yīng)之后,會將cookie信息保存起來(保存sessionid的信息)。

后續(xù)請求:

① 第二次或之后的請求都會攜帶sessionid的cookie信息

② 當(dāng)服務(wù)器接收到這個請求之后,獲取到sessionid信息,然后進(jìn)行驗證,驗證成功,則可以獲取session信息(session信息保存在服務(wù)器端)

4. 代碼實現(xiàn)

  1. def login(request): 
  2.     if request.method == 'GET'
  3.         return render(request, 'login.html'
  4.  
  5.     elif request.method == 'POST'
  6.         ''
  7.         響應(yīng)體: 
  8.             return HttpResponse() 
  9.             return render() 
  10.             return redirect()     
  11.            都可以 
  12.         ''
  13.         username = request.POST.get('username'
  14.         password = request.POST.get('password'
  15.  
  16.         if username and password:  # 此處為了方便測試,沒有去數(shù)據(jù)庫進(jìn)行校驗,實際的需要去數(shù)據(jù)庫校驗用戶名和密碼之類的 
  17.             # 設(shè)置session信息 
  18.             request.session['is_login'] = True 
  19.             request.session['username'] = username 
  20.             ''
  21.             以上設(shè)置,實際執(zhí)行以下操作: 
  22.             1、生成隨機字符串,例如:123abc!@# 
  23.             2、response.set_cookie("sessionid", 123abc!@#) 
  24.             3、在django_session表中創(chuàng)建一條記錄: 
  25.                 session_key         session_data 
  26.                 123abc!@#           {"is_login":True"username""admin"}         
  27.              
  28.             ''
  29.  
  30.         return redirect(reverse('user:home')) 
  31.  
  32.      
  33. def home(request): 
  34.     is_login = request.session['is_login'
  35.     username = request.session['username'
  36.     ''
  37.     以上執(zhí)行以下操作: 
  38.     1)  request.COOKIES.get('sessionid'),獲得session_key 
  39.     2) 通過上面得到的session_key,在django_session表中獲取對應(yīng)的session_data 
  40.     3) 從session_data獲取is_login值。     
  41.     ''
  42.  
  43.     if is_login: 
  44.         return render(request, 'home.html', {'username': username}) 
  45.  
  46.     return redirect(reverse('user:login')) 
  47.  
  48. def logout(request): 
  49.     response = redirect(reverse('user:login')) 
  50.      
  51.     # 刪除session數(shù)據(jù),即刪除了session_data字段值中對應(yīng)鍵和值,但是cookie信息還存在,請求還會攜帶cookie信息,也就成了臟數(shù)據(jù),通過cookie再找session,已經(jīng)找不到了。 
  52.     #del request.session['is_login']  
  53.      
  54.     # 清除所有session,禁用!!! 
  55.     request.session.clear()      
  56.     # 清除當(dāng)前的會話數(shù)據(jù)并刪除會話的cookie,session,cookie一起干掉,刪除session表中session的整條數(shù)據(jù)。 
  57.     request.session.flush() 
  58.     ''
  59.     執(zhí)行以下操作: 
  60.     1) request.COOKIE.get('sessionid'),獲得session_key 
  61.     2) django_session表中刪除session_key對應(yīng)的記錄 
  62.     3) response.delete_cookie('sessionid'
  63.     ''
  64.  
  65.     return response 

打開登錄頁面,沒有攜帶任何cookie信息(csrf那個先不管)

發(fā)起登錄請求,設(shè)置session信息,其中會生成隨機字符串比如mjx9gsq47ofwmcg2ubxtg28uk6idbq2a,然后以這個sessionid為key,這個字符串為value,設(shè)置cookie信息。

并且在django_session插入記錄,其中session_key字段的值就是sessionid的值,session_data字段的值就是上面設(shè)置的session鍵值對。

然后跳轉(zhuǎn)到home頁,就會攜帶cookie信息,獲取sessionid的值,在數(shù)據(jù)庫django_session表中查找是否有相關(guān)記錄。

如果退出,則刪除session信息

從DJANGO角度來看:

第一次請求:

① 第一次請求,在請求頭中沒有攜帶任何cookie信息。

② 我們在設(shè)置session的時候,session會做2件事。

第一件:將數(shù)據(jù)保存在數(shù)據(jù)庫中。

第二件:設(shè)置一個cookie信息,這個cookie信息是以sessionid為key,value為xxxx,cookie肯定會以響應(yīng)的形式在響應(yīng)頭中出現(xiàn)。

第二次以及之后的請求:

③ 都會攜帶cookie信息,特別是sessionid。

如果換了瀏覽器,還能獲取到session信息嗎?

解:不可以,因為session依賴于cookie,換了瀏覽器,都沒有cookie信息了。

 

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2021-03-23 10:45:23

CookieSession前端

2013-03-19 09:18:35

Cookie

2019-01-04 15:14:18

2023-10-31 18:52:29

網(wǎng)絡(luò)框架XDP技術(shù)

2016-10-10 13:51:42

2018-02-23 14:13:39

前端Cookie用戶登錄

2017-04-28 08:13:08

大數(shù)據(jù)框架HDFS

2009-08-06 16:02:05

無Cookie會話

2014-01-13 09:00:54

PythonDjango

2023-07-05 00:38:21

2011-07-11 15:51:50

cookie

2009-07-24 17:04:57

ASP.NET中Coo

2009-09-24 16:13:05

Hibernate S

2009-08-06 16:11:17

2009-07-01 11:05:18

頁面與代碼分離JSP源碼

2009-07-06 16:05:50

JSP特點

2019-11-07 10:37:36

CookieSessionToken

2019-06-11 14:45:25

2024-10-10 12:21:56

JWTSession擴展性

2024-11-26 08:21:57

點贊
收藏

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

一区二区三区四区在线播放 | 中文字幕一区二区三区四区五区人 | 成人国产精品一级毛片视频| 欧美色涩在线第一页| 异国色恋浪漫潭| 手机av在线免费观看| 国产欧美日韩亚洲一区二区三区| 亚洲最新视频在线| 日韩大尺度视频| 日本高清不卡一区二区三区视频| 亚洲欧美在线高清| 激情视频一区二区| 一区二区三区免费在线| 亚洲激情一区| 久久精品精品电影网| 人妻少妇精品视频一区二区三区| 成人av色网站| 岛国精品视频在线播放| 在线无限看免费粉色视频| 性猛交xxxx| 国产一区二区免费在线| 日韩av色综合| 国产精品美女毛片真酒店| 欧美呦呦网站| 精品亚洲一区二区| 国产精品熟妇一区二区三区四区| 91tv亚洲精品香蕉国产一区| 亚洲成人7777| 一级黄色片播放| 成人免费在线电影| av一区二区三区四区| 亚洲自拍高清视频网站| 国产精华7777777| 亚洲欧美不卡| 久久久在线视频| 麻豆精品一区二区三区视频| 日韩精品影视| 在线观看不卡av| 国产精久久一区二区三区| 老牛精品亚洲成av人片| 精品久久久三级丝袜| 色偷偷中文字幕| 青青草国产一区二区三区| 色婷婷综合激情| 久久久免费视频网站| 九色porny视频在线观看| 亚洲自拍欧美精品| 日韩欧美一级在线| 怡红院av在线| 亚洲一区在线观看网站| 国内自拍中文字幕| 欧美另类tv| 亚洲综合无码一区二区| 女人床在线观看| 色操视频在线| 亚洲电影激情视频网站| 国产日韩亚洲欧美在线| 国产偷倩在线播放| 香港成人在线视频| 久久综合色视频| www.成人影院| 91高清视频在线| 超碰在线97免费| 福利视频一区| 欧美精品久久久久久久多人混战| 国产一级片自拍| 91久久青草| 日韩色在线观看| 91精品人妻一区二区三区四区| 亚洲三级av| 亚洲国产欧美一区二区丝袜黑人 | 日本中文字幕在线一区| 日韩国产精品一区| a级片在线观看| 日韩在线高清| 九色成人免费视频| 国产无遮挡又黄又爽| 国产精品久久久久毛片大屁完整版| 97成人在线视频| 91视频久久久| 精品亚洲免费视频| 国产精品一区二区三区免费观看| 日韩二区三区| 国产精品国产馆在线真实露脸 | 欧美一区二区三区不卡| 欧美激情 亚洲| 国产精品密蕾丝视频下载| 日韩中文理论片| 久久午夜无码鲁丝片午夜精品| 亚洲精品欧美| 国产精品一久久香蕉国产线看观看| 99精品在线看| 96av麻豆蜜桃一区二区| 在线观看欧美亚洲| 国产免费拔擦拔擦8x高清在线人 | 成人免费观看在线视频| 26uuu国产一区二区三区| 一本一道久久久a久久久精品91 | 精品高清久久| 欧美激情精品久久久久久黑人| 欧美a∨亚洲欧美亚洲| 久久www免费人成看片高清| 国产精品久久久久免费| yes4444视频在线观看| 亚洲福利视频一区二区| 精品999在线| 狼人天天伊人久久| 久久精品视频播放| 丰满人妻老熟妇伦人精品| 国产一区二区三区香蕉| 日本一区视频在线观看| 欧洲黄色一区| 欧美福利视频一区| 李宗瑞91在线正在播放| 欧美天堂亚洲电影院在线观看 | 这里只有久久精品视频| 国产91对白在线观看九色| 亚洲国产另类久久久精品极度| 51精品视频| 欧美一级理论片| 老司机精品免费视频| 夜久久久久久| eeuss一区二区三区| 色老头视频在线观看| 精品久久久久久久久久久久久| 午夜天堂在线视频| 精品久久久中文字幕| 欧美一级视频在线观看| 性少妇videosexfreexxx片| 国产欧美一区二区精品久导航| 玩弄中年熟妇正在播放| av综合网址| 久久99国产精品自在自在app| 一道本在线视频| 国产亚洲精品精华液| 欧美 日韩 国产 高清| 99精品国产高清一区二区麻豆| 日韩资源在线观看| 中文字幕在线观看欧美| 国产精品日日摸夜夜摸av| 玩弄japan白嫩少妇hd| 婷婷成人综合| 欧美亚洲在线观看| 头脑特工队2在线播放| 亚洲高清免费观看高清完整版在线观看| 中文字幕乱码在线人视频| 天天做天天爱天天综合网| 国产在线98福利播放视频| 国产黄色在线| 欧美亚洲图片小说| 永久免费成人代码| 蜜桃av综合| 日本一区二区三区免费看| 四虎成人在线| 亚洲桃花岛网站| 亚洲精品无码久久久久| 欧美韩日一区二区三区四区| www.欧美日本| 久久国产中文字幕| 91精品国产自产在线观看永久| 免费av在线网址| 91麻豆精品国产自产在线 | 亚洲人成久久| 欧美少妇一区| 97成人超碰| 久久精品国产免费观看| 99久久精品国产色欲| 一区二区三区国产| 日本japanese极品少妇| 石原莉奈在线亚洲三区| 亚州欧美一区三区三区在线| 日韩在线电影| 高清视频欧美一级| 麻豆国产在线播放| 欧美日韩不卡在线| 欧美日韩精品亚洲精品| 91在线视频官网| 9久久婷婷国产综合精品性色 | 成人黄色免费视频| 精品国产老师黑色丝袜高跟鞋| 欧美 变态 另类 人妖| 日韩成人免费电影| 97在线免费视频观看| 首页亚洲中字| 91免费欧美精品| 国产精品一区二区日韩| 一区二区在线免费视频| 99久久久国产精品无码网爆 | 伊人网视频在线| 亚洲一区二区视频在线| 素人fc2av清纯18岁| 另类欧美日韩国产在线| 久久久久久久9| 国产精品免费大片| 亚洲一区制服诱惑| 中文在线中文资源| 久久综合电影一区| 亚洲av成人无码久久精品老人| 精品婷婷伊人一区三区三| 精品无码人妻一区二区三区品| 日本一区二区动态图| 一级黄色大片免费看| 日韩av午夜在线观看| 久久艹国产精品| 日韩中字在线| 久久久久久久久久久久久9999| 成人永久在线| 国产精品第1页| h片在线观看视频免费| 夜夜嗨av一区二区三区四区| 神宫寺奈绪一区二区三区| 欧美日韩成人一区二区| 亚洲成熟少妇视频在线观看| 亚洲一线二线三线久久久| 精品人体无码一区二区三区| av成人老司机| 男人的天堂免费| 久久99久久99精品免视看婷婷 | 欧美成人精品三级网站| 韩国三级日本三级少妇99| 日本高清中文字幕在线| 亚洲人在线观看| 少妇喷水在线观看| 欧美成人福利视频| 99视频免费看| 欧美日韩国产乱码电影| 999视频在线| 色综合天天综合在线视频| 欧美日韩中文视频| 亚洲黄色片在线观看| 精品国产大片大片大片| 国产色一区二区| 日本高清www| 99国产精品久久久久久久久久| 免费观看污网站| 国产成人小视频| 天堂av手机在线| 国产一区二区三区香蕉| 欧美xxxxxbbbbb| 国产一区高清在线| 人妻少妇偷人精品久久久任期| 国产在线精品不卡| 永久av免费在线观看| 国产专区欧美精品| 欧美一级小视频| 久久丁香综合五月国产三级网站| 日本人视频jizz页码69| 日韩不卡一区二区三区 | 国产成人免费9x9x人网站视频| 国产91在线视频| 日韩免费电影| 国产激情综合五月久久| 日韩高清成人| 国产原创欧美精品| 色播一区二区| 国产精品永久入口久久久| 米奇精品关键词| 精品亚洲欧美日韩| 精品一区毛片| 亚洲国产精品一区二区第一页| 久久五月天小说| 欧美少妇在线观看| 狠狠爱综合网| 青青视频在线播放| 日韩影院在线观看| 亚洲 欧美 日韩系列| 国产综合色在线视频区| 又黄又色的网站| 久久先锋影音av| 国产又粗又长又硬| 一区二区三区在线观看欧美 | 欧美伊人精品成人久久综合97| 中文字幕乱码视频| 欧美一区二区三区不卡| 午夜国产在线视频| 在线亚洲国产精品网| 深夜国产在线播放| 欧美在线视频免费观看| 国精品产品一区| av资源站久久亚洲| av资源久久| 国产精品av免费观看| 亚洲欧美视频一区二区三区| 亚洲一级片免费| 国产福利不卡视频| 美女洗澡无遮挡| 亚洲免费电影在线| 天天爽夜夜爽人人爽| 欧美丰满美乳xxx高潮www| 神马久久久久久久久久| 久久精品99久久久香蕉| 国产美女高潮在线观看| 成人春色激情网| 久久男人av| 美国av在线播放| 久久都是精品| 精品人妻二区中文字幕| 欧美韩国日本综合| 亚洲免费激情视频| 欧美一区二区三区在线电影 | 欧美xxxx做受欧美| 欧美成人黑人| 国产精品视频免费一区二区三区 | 久久精品一区二区三区av | 一本色道久久综合亚洲91| 99久久夜色精品国产亚洲| 亚洲精品资源在线| 色噜噜狠狠狠综合欧洲色8| 国产精品香蕉av| 日韩动漫一区| 国产精品日韩三级| 六月丁香婷婷久久| 久久精品视频18| 精品美女国产在线| 成人av一区二区三区在线观看 | 国产一线二线在线观看| 成人免费视频网| 成人在线免费观看视频| 99热在线这里只有精品| 国产成人免费在线观看不卡| 影音先锋男人资源在线观看| 色偷偷88欧美精品久久久| 国产综合在线播放| 欧美另类69精品久久久久9999| 欧美日韩激情电影| 欧美视频观看一区| 久久精品盗摄| 内射中出日韩无国产剧情| 亚洲最新视频在线播放| 99在线无码精品入口| 精品国产拍在线观看| 欧洲午夜精品| 亚洲一区二区三区精品视频| 人妖欧美一区二区| 公肉吊粗大爽色翁浪妇视频| 欧美午夜久久久| 四虎影院在线播放| 91精品国产高清久久久久久| 国产香蕉精品| 国产毛片视频网站| 99久久99久久精品免费观看| 国产精品一区二区6| 亚洲第一页在线| 麻豆免费在线| 蜜桃视频日韩| 首页综合国产亚洲丝袜| 精品国产av无码| 在线免费观看日本欧美| www 日韩| 91免费综合在线| 亚洲女同另类| 激情综合激情五月| 欧美日韩性生活视频| 极品白浆推特女神在线观看| 国产精品www色诱视频| 日韩伦理一区| 色婷婷一区二区三区在线观看| 中文字幕日本乱码精品影院| av免费在线观看不卡| 精品中文字幕在线| 老牛国内精品亚洲成av人片| 日本熟妇人妻xxxxx| 国产精品视频看| 精品国产av一区二区| 国精产品一区一区三区有限在线| 丝袜连裤袜欧美激情日韩| 国模杨依粉嫩蝴蝶150p| 国产精品成人免费精品自在线观看| 国产又粗又长又黄| 欧美激情综合亚洲一二区| 日韩精品丝袜美腿| 国产又大又黄又猛| 亚洲免费在线视频一区 二区| 亚洲国产www| 国产91精品最新在线播放| 99久久婷婷| 精品人妻一区二区三区日产| 色婷婷av一区二区三区之一色屋| 91精彩在线视频| 国产91色在线|亚洲| 久久午夜精品| 国产极品国产极品| 国产视频欧美视频| 成人在线精品| 黄色动漫在线免费看| 国产精品久久久久久久久果冻传媒 | 精品欧美一区二区精品久久| 日韩专区中文字幕一区二区| 久久精品一区二区三区四区五区| 亚洲国产中文字幕久久网| 国产精品亚洲成在人线| 欧美成人精品免费| 欧美高清一级片在线观看| 高潮一区二区三区乱码| 国产精品欧美日韩| 亚洲深爱激情| 极品盗摄国产盗摄合集| 亚洲视频日韩精品| jizz性欧美23| 亚洲午夜激情影院|