程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#中的數組作為參數傳遞所激發的成績

C#中的數組作為參數傳遞所激發的成績

編輯:C#入門知識

C#中的數組作為參數傳遞所激發的成績。本站提示廣大學習愛好者:(C#中的數組作為參數傳遞所激發的成績)文章只能為提供參考,不一定能成為您想要的結果。以下是C#中的數組作為參數傳遞所激發的成績正文


Cookie和Session都是為了堅持用戶的拜訪狀況,一方面為了便利營業完成,另外一方面為了簡化辦事真個法式設計,進步拜訪機能。Cookie是客戶端(也就是閱讀器端)的技巧,設置了Cookie以後,每次拜訪辦事端,要求中都邑帶上Cookie;Session是辦事端技巧,在辦事端存儲用戶的拜訪信息。

  應用Cookie傳遞信息,跟著Cookie個數增多和拜訪量增年夜,它占用的帶寬會愈來愈年夜;應用Session保留信息,最年夜的弱點就是不輕易在多台辦事器之間同享。

1 Cookie

  淺顯地講,當用戶應用HTTP拜訪辦事器時,辦事器會將一些鍵值對信息前往給客戶端閱讀器,而且給這些數據加一些限制前提,在相符限制前提情形下用戶下次拜訪辦事器時,會帶上之前設置的Cookie鍵值對信息。當該用戶輸出 URL 時,閱讀器便會在當地硬盤上查找與該 URL 聯系關系的 Cookie。假如該 Cookie 存在,閱讀器便將該 Cookie 與頁要求一路發送到您的站點。

  Cookie 與網站聯系關系,而不是與特定的頁面聯系關系。是以,不管用戶要求站點中的哪個頁面,閱讀器和辦事器都將交流 Cookie 信息。用戶拜訪分歧站點時,各個站點都能夠會向用戶的閱讀器發送一個 Cookie;閱讀器會分離存儲一切 Cookie。

Cookie屬性項

  以後Cookie有2個版本,Version 0 和 Version 1,它們有2種設置呼應頭標識,分離是"Set-Cookie"和"Set-Cookie2"。

Cookie 0屬性值

Cookie 1屬性值

Java中應用Cookie示例

@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
Cookie[] cookies = request.getCookies();
String name = getCoodie(cookies, "name");
if (name == null) {
response.addCookie(new Cookie("name", "luoxn28"));
}
else {
System.out.println(name);
}
out.println("hello world");
}
public static String getCoodie(Cookie[] cookies, String key) {
if (cookies != null) {
for (Cookie cookie : cookies) {
if (cookie.getName().equals(key)) {
return cookie.getValue();
}
}
}
return null;
}

應用Cookie的一些留意事項(以Java應用為例)

•所創立的Cookie的name和value不克不及為非ASSIC字符,假如是中文,可以經由過程RRLEncoder將其編碼,不然會拋出java.lang.IllegalArgumentException異常。

•多湧現多個name和value值時,它們其實統一個"Cookie"頭中的。

•Cookies的值中可以保留除“;”之外的標點符號。然則不克不及保留漢字。保留漢字會湧現亂碼。

Cookie的一些限制

  Cookie是HTTP頭中的一個字段,HTTP自己對該字段沒無限制,然則Cookie終究存儲在閱讀器中,分歧的閱讀器對Cookie的存儲有一些限制,以下表所示:

  假如試圖存儲更多 Cookie,則最舊的 Cookie 便會被拋棄。

2 Session

  Session處理了Cookie增多時會增長客戶端與辦事器的數據傳輸量成績,統一個客戶端與辦事器交互時,不須要每次都傳回一切的Cookie值,而是只需傳回一個ID值,這個ID是客戶端第一次拜訪辦事器時生成的,並且每一個客戶端是獨一的,這個ID平日是name為JSESSIONID的一個Cookie。

  Session是若何基於Cookie任務的呢,可所以基於URL Path Parameter方法;也能夠是基於Cookie,假如沒有修正Context容器中的Cookies標識,則默許也是支撐的。當閱讀器不支撐Cookie功效時,閱讀器會將用戶的SessionCookieName重寫到用戶要求的URL參數中,它的傳遞方法如/path/Servlet;name=xxx;name2=xxx2?name3=xxx3。SessionCookieName假如在web.xml中設置裝備擺設session-config設置裝備擺設項,其cookie-config下的name屬性就是這個SessionCookieName的值。假如沒有設置裝備擺設session-config設置裝備擺設項,默許的SessionCookieNamejiushi “JSESSIONID”。留意,與Session聯系關系的Cookie與其他Cookie並沒有甚麼分歧。假如客戶端也支撐Cookie,則Tomcat仍會解析Cookie中的Session ID,並會籠罩URL中的Session ID。

Session若何任務

  有了Session ID,辦事器便可以創立HttpSession對象了,第一次挪用request.getSession()辦法,假如沒有對應的HttpSession對象,則會創立一個新的,並將這個對象參加到org.apache.catalina.Manager的sessions容器中保留。Manage保留一切的session性命周期,Session過時被收受接管,辦事器封閉,Session被序列化到磁盤。留意,一個客戶端對應一個Session對象,這個對象恰是保留我們創立的Session值的。

  request.getSession()辦法挪用的StandardSession永久都邑存在,即便與這個客戶端聯系關系的Session曾經過時。假如過時,則會創立一個新的,然則之前設置的Session值將會喪失。

3 Cookie與Session平安性比擬

  Cookie將保留的數據經由過程HTTP頭部從客戶端傳到辦事端,從辦事端再傳回到客戶端,一切的數據都保留在客戶端閱讀器中,這些數據都是可以拜訪到的,乃至可以經由過程插件添加、修正Cookie,一切Cookie的平安性是比擬差的。比擬較而言,Session將數據保留在辦事器端,平安性高許多,只須要Cookie傳回一個Cookie ID便可以,所以Session更合適保留用戶隱私和主要的數據。

散布式Session框架

  在年夜型互聯網運用中,單用Cookie和Session都是弗成行的,由於假如應用Cookie可以很好地處理運用的散布式安排成績,年夜型互聯網運用體系一個運用有上百台機械,並且有許多分歧的運用體系協同任務,因為Cookie是將數據存儲在用戶閱讀器中,用戶每次拜訪都邑講數據帶回到辦事器,也就處理了統一個用戶的要求在分歧辦事器上處置而招致的Cookie紛歧致成績。

  因為運用是一個集群,所以不克不及將Session都保留在每台辦事器的內存中,假如每台辦事器有幾十萬拜訪用戶,辦事器內存也容不下,即便容得下,也沒法包管該Session同步到其他辦事器中,所以同享這些Session須要將它們保留在專門的散布式緩存中,可以隨時讀取和寫入,機能要夠好知足請求,如memcache/redis或許淘寶的開源散布式框架Tair都是很好的選擇。

表單反復提交成績

  網站中有許多處所有反復提交表單成績,為了避免表單反復提交,就要標識用戶的每次拜訪要求,使得每次拜訪要求對辦事端來講都是獨一的,為了標識用戶的每次要求,可以在用戶要求的表單域增長一個隱蔽表單項,其值為獨一的token,如:

<form id="form" method="post">
...
<input type=hidden name="token" value="xxx"/>
</form>

  用戶要求表單時生成獨一的token,而且設置到該用戶的Session中,等用戶提交時檢測這個token能否和Session中保留的token分歧,假如分歧,解釋沒有反復提交,同時把Session中的token更新成一個新的token值;不然用戶提交下去的token曾經不是以後要求的正當token,提交掉敗。

以上所述是小編給年夜家引見的Java中Cookie和Session的那些事兒,願望對年夜家有所贊助,假如年夜家有任何疑問請給我留言,小編會實時答復年夜家的。在此也異常感激年夜家對網站的支撐!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved