对Cookie及http协议的理解

Riva ·
更新时间:2024-09-20
· 533 次阅读

目录一、HTTP协议二、Cookie1.Cookie概念2.Cookie特点3.Cookie使用①添加②读取③修改④失效⑤删除⑥设置域名、路径 一、HTTP协议

       1、HTTP协议,即超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。

       2、HTTP协议是一个无状态的通信协议,一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。它基于TCP协议的一种高级协议,用于客户端和服务器直接的通信。

       3、服务器到底是怎么被访问的?
例:
        地址(url):https://www.baidu.com:443/xx/xx/xx?xx=xx&xx=xx

http/https:传输协议 www.baidu.com:域名,地址 :80/:443:端口 /xx/xx/xx:服务器路径 ?xx=xx&xx=xx:以某种方式向服务器发送的数据 某种方式:get/post

       4、http 默认端口号:80;https(secure)协议 默认端口号:443。

二、Cookie 1.Cookie概念

       指某些网站为了辨别用户身份,进行session(会话)跟踪而存储在用户本地终端上的数据(通常经过加密),以文本形式存在。
       例:
       谷歌浏览器存储地址: C:\Users\用户名\AppData\Local\Google\Chrome\User Data\Default\文件夹下的Cookies文件。

注:
cookie 只有在服务器环境下才有用;

禁用cookie:
改变浏览器的cookie设置。如果浏览器完全禁止cookie功能的话,大多数网站的基本功能无法正常使用。

2.Cookie特点 chrome和safari没有对cookie的个数做限制,一般浏览器限制同一域名数量为50个。 cookie文件的总大小一般为4KB(同一个域名)。 API需要封装才能使用。 只能使用文本文件,用于客户端和服务端通信。 读取有域名限制。 域名 www.baidu.com www.taobao.com , 不可跨域读取,只能由来自 写入cookie的 同一域名 的网页可进行读取。 简单的讲就是,谁写的cookie,谁才有权利读取 。 时效性:每个cookie都有时效,最短的有效期是,会话级别:就是当浏览器关闭,那么cookie立即销毁。 3.Cookie使用 ①添加 // 添加cookie:document.cookie = “key=value”; 一次写入一个键值对 document.cookie = 'value1 = hello'; document.cookie = 'value2 = world'; //打开控制台,点击application,就能看到在浏览器中cookie的样子

       注意:document.cookie一次只能写入一个Cookie,且写入并不是覆盖,而是添加。

②读取 document.cookie; // "value1 = hello; value2 = world"

       上面代码从document.cookie一次性读出两个 Cookie,它们之间使用 分号空格 分隔。必须手动还原,才能取出每一个 Cookie 的值。

var cookies = document.cookie.split('; '); for (var i = 0; i < cookies.length; i++) { console.log(cookies[i]); } ③修改 // 修改名为key的cookie值 document.cookie = "key=value"; document.cookie = "test2=demo"; document.cookie; // "value1=hello; value2=demo" ④失效

       expires 。没有设置失效时间的cookie 在浏览器关闭以后就会自动删除,如果设置了失效时候在未来的时间,就可以让cookie保存的时间更长。
设置失效时间:document.cookie = “key=value;expires=”+ oDate;

var oDate = new Date(); oDate.setDate(oDate.getDate() + 3); document.cookie = "key=value;expires="+ oDate; //上面代码设置cookie的过期时间为 3 天以后 ⑤删除

       将cookie值覆盖为空,并将失效时间设置为过去的时间:

var oDate = new Date(); oDate.setDate(oDate.getDate() -3); document.cookie = "test=;expires="+ oDate; //将cookie的过期时间设置为 3 天前,test 这个cookie 就获取不到了 ⑥设置域名、路径

设置域名:domain
设置域名:document.cookie = “key=value;domain=www.baidu.com”;
:必须在绑定域名的服务器才可以设置域名,上不同服务器之间的cookie文件不能共享。

设置路径:path
设置路径: document.cookie = “key=value;path=/”;

document.cookie = "key=value;path=/"; //设置cookie的路径为根路径,这样我们网站下的所有页面可以共享cookie

注:在同一路径下的网页可以共享cookie,路径不同时,不可以访问。如果有中文内容,需要用encodeURIComponent('xxxx')进行编码,再使用decodeURIComponent('xxxx')进行解码,解决中文乱码的问题。


作者:huangfuyk.



HTTP http协议 cookie

需要 登录 后方可回复, 如果你还没有账号请 注册新账号