Session與Cookie均可以進行會話跟中,可是實現原理不太同樣。java
1.從存取方式上比較:跨域
Cookie只能保存ASCII字符串,若是須要存取Unicode字符或者二進制字符,須要進行UTF-8,GBK等方式的編碼,Cookie不能直接存取java對象,並不適合用來存取複雜的信息。瀏覽器
Session能夠存取任何類型的數據,包括javabean乃至任何的java類和對象。能夠把session看作是一個java的容器。安全
2.從隱私安全上比較:服務器
cookie是保存在客戶端瀏覽器上面的,對客戶端是可見的,存在安全隱患;session則是保存的服務器端,對客戶透明,不存在敏感信息泄露問題。cookie
3.從有效期上比較:session
cookie的有效期能夠經過設置Cookie的maxAge屬性來修改;session則是在關閉瀏覽器後就會失效。併發
4.從對服務器的負擔上比較:網站
cookie是保存在客戶端瀏覽器上的,對服務器的負擔比較小;session是保存在服務器上的,服務器針對每一個用戶建立一個session,若是併發訪問的用戶很是多,會消耗大量的內存。因此,若是是面對併發訪問多的網站,建議使用cookie。編碼
5.從瀏覽器支持上比較:
cookie是須要客戶端瀏覽器支持,不然沒法跟着會話,如WAP上的應用;針對客戶端不支持cookie的狀況,能夠使用session以及URL地址重寫來實現會話跟蹤。
6.從跨域名商比較:
cookie支持跨域名訪問;session不支持,僅在他所在的域名內有效。
若是有必要的話,同時使用cookie跟session可能會產生比較好的效果。