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功能的话,大多数网站的基本功能无法正常使用。
// 添加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')
进行解码,解决中文乱码的问题。