首页 > 前端开发 > 正文

web前端开发cookie web前端怎么入门学习?

2023-09-06 07:37:04 | 我爱编程网

大家平时对前端开发都十分关注,今天为大家整理了web前端开发cookie web前端怎么入门学习?,下面就随我爱编程网小编一起来看一下吧。

web前端开发cookie web前端怎么入门学习?

Web前端新手应该了解的Cookie知识!

今天小编要跟大家分享的文章是关于Web前端新手应该了解的Cookie知识。正准备学习Web前端知识和准备从事Web
前端工作的小伙伴怎么能不了解Cookie。今天小编就为大家带来了这篇文章,让我们一起来看一看Web前端新手应该了解的Cookie知识。





一、Cookie的出现


浏览器和服务器之间的通信少不了HTTP协议,但是因为HTTP协议是无状态的,所以服务器并不知道上一次浏览器做了什么样的操作,这样严重阻碍了交互式Web
应用程序的实现。


针对上述的问题,网景公司的程序员创造了Cookie。


二、Cookie的传输


服务器端在实现Cookie标准的过程中,需要对任意HTTP请求发送Set-CookieHTTP头作为响应的一部分:


1.Set-Cookie:name=value;expires=Tue,03-Sep-201914:10:21GMT;path=/;
domain=.#;


浏览器端会存储这样的Cookie,并且为之后的每个请求添加CookieHTTP请求头发送回服务器:


1.Cookie:name=value


服务器通过验证Cookie值,来判断浏览器发送请求属于哪一个用户。


三、浏览器中的Cookie


浏览器中的Cookie主要由以下几部分组成:


·名称:Cookie唯一的名称,必须经过URL编码处理。(同名会出现覆盖的情况)


·值:必须经过URL编码处理。


·域(domain):默认情况下cookie在当前域下有效,你也可以设置该值来确保对其子域是否有效。


·路径(path):指定Cookie在哪些路径下有效,默认是当前路径下。


·
失效时间(expires):默认情况下,浏览器会话结束时会自动删除Cookie;也可以设置一个GMT格式的日期,指定具体的删除日期;如果设置的日期为以前的日期,那么Cookie会立即删除。


·安全标志(secure):指定之后只允许Cookie发送给https协议。


浏览器在发送请求时,只会将名称与值添加到请求头的Cookie字段中,发送给服务端。


浏览器提供了一个非常蹩脚的API来操作Cookie:


1.document.cookie


通过上述方法可以对该Cookie进行写操作,每一次只能写入一条Cookie字符串:


1.document.cookie='a=1;secure;path=/'


通过该方法还可以进行Cookie的读操作:


1.document.cookie//"a=1"


由于上述方法操作Cookie非常的不直观,一般都会写一些函数来简化Cookie读取、设置和删除操作。


对于Cookie的设置操作中,需要以下几点:


对于名称和值进行URL编码处理,也就是采用JavaScript中的encodeURIComponent()方法;
expires要求传入GMT格式的日期,需要处理为更易书写的方式,比如:设置秒数的方式;注意只有的属性名的secure;


每一段信息需要采用分号加空格。



1.functionsetCookie(key,value,attributes){

2.if(typeofdocument==='undefined'){

3.return

4.}

5.attributes=Object.assign({},{

6.path:'/'

7.},attributes)

8.

9.let{domain,path,expires,secure}=attributes

10.

11.if(typeofexpires==='number'){

12.expires=newDate(Date.now()+expires*1000)

13.}

14.if(expiresinstanceofDate){

15.expires=expires.toUTCString()

16.}else{

17.expires=''

18.}

19.

20.key=encodeURIComponent(key)

21.value=encodeURIComponent(value)

22.

23.letcookieStr=`${key}=${value}`

24.

25.if(domain){

26.cookieStr+=`;domain=${domain}`

27.}

28.

29.if(path){

30.cookieStr+=`;path=${path}`

31.}

32.

33.if(expires){

34.cookieStr+=`;expires=${expires}`

35.}

36.

37.if(secure){

38.cookieStr+=`;secure`

39.}

40.

41.return(document.cookie=cookieStr)

42.}

Cookie的读操作需要注意的是将名称与值进行URL解码处理,也就是调用JavaScript中的decodeURIComponent()方法:



1.functiongetCookie(name){

2.if(typeofdocument==='undefined'){

3.return

4.}

5.letcookies=[]

6.letjar={}

7.document.cookie&&(cookies=document.cookie.split(';'))

8.

9.for(leti=0,max=cookies.length;i
10.let[key,value]=cookies[i].split('=')

11.key=decodeURIComponent(key)

12.value=decodeURIComponent(value)

13.jar[key]=value

14.if(key===name){

15.break

16.}

17.}

18.

19.returnname?jar[name]:jar

20.}

最后一个清除的方法就更加简单了,只要将失效日期(expires)设置为过去的日期即可:



1.functionremoveCookie(key){

2.setCookie(key,'',{expires:-1})

3.}

介绍Cookie基本操作的封装之后,还需要了解浏览器为了限制Cookie不会被恶意使用,规定了Cookie所占磁盘空间的大小以及每个域名下Cookie的个数。


四、服务端的Cookie


相比较浏览器端,服务端执行Cookie的写操作时,是将拼接好的Cookie字符串放入响应头的Set-Cookie字段中;执行Cookie的读操作时,则是解析HTTP请求头字段Cookie中的键值对。


与浏览器最大的不同,在于服务端对于Cookie的安全性操碎了心


signed


当设置signed=true时,服务端会对该条Cookie字符串生成两个Set-Cookie响应头字段:


1.Set-Cookie:lastTime=2019-03-05T14:31:05.543Z;path=/;httponly


2.Set-Cookie:lastTime.sig=URXREOYTtMnGm0b7qCYFJ2Db400;path=/;
httponly


这里通过再发送一条以.sig为后缀的名称以及对值进行加密的Cookie,来验证该条Cookie是否在传输的过程中被篡改。


httpOnly


服务端Set-Cookie字段中新增httpOnly属性,当服务端在返回的Cookie信息中含有httpOnly字段时,开发者是不能通过JavaScript来操纵该条Cookie字符串的。


这样做的好处主要在于面对XSS(Cross-sitescripting)攻击时,黑客无法拿到设置httpOnly字段的Cookie信息。


此时,你会发现localStorage相比较Cookie,在XSS攻击的防御上就略逊一筹了。sameSite


在介绍这个新属性之前,首先你需要明白:当用户从#发起#的请求也会携带上Cookie,而从#携带过来的Cookie称为第三方Cookie。


虽然第三方Cookie有一些好处,但是给CSRF(Cross-siterequestforgrey)攻击的机会。


为了从根源上解决CSRF攻击,sameSite属性便闪亮登场了,它的取值有以下几种:


·
strict:浏览器在任何跨域请求中都不会携带Cookie,这样可以有效的防御CSRF攻击,但是对于有多个子域名的网站采用主域名存储用户登录信息的场景,每个子域名都需要用户重新登录,造成用户体验非常的差。


·lax:相比较strict,它允许从三方网站跳转过来的时候使用Cookie。


为了方便大家理解sameSite的实际效果,可以看这个例子:



1.//#服务端会在访问页面时返回如下Cookie

2.cookies.set('foo','aaaaa')

3.cookies.set('bar','bbbbb')

4.cookies.set('name','cccccc')

5.

6.//#服务端会在访问页面时返回如下Cookie

7.cookies.set('foo','a',{sameSite:'strict'})

8.cookies.set('bar','b',{sameSite:'lax'})

9.cookies.set('baz','c')

如何现在用户在#中点击链接跳转到#,它的请求头是这样的:



1.RequestHeaders

2.

3.Cookie:bar=b;baz=c

五、网站性能优化


Cookie在服务端和浏览器的通信中,主要依靠HTTP的响应头和请求头传输的,所以Cookie会占据一定的带宽。


前面提到浏览器会为每一次HTPP请求自动携带上Cookie信息,但是对于同站内的静态资源,服务器并不需要处理其携带的Cookie,这无形中便浪费了带宽。


在最佳实践中,一般都会将静态资源部署到独立的域名上,从而可以避免无效Cookie的影响。


以上就是小编今天为大家分享的关于Web前端新手应该了解的Cookie知识,希望本篇文章能够对正在从事Web前端工作和准备从事Web
前端学习的小伙伴们有所帮助。想要了解更多Web前端相关知识记得关注北大青鸟Web培训官网!


作者|descire


来源|#/article/286535


*声明:内容与图片均来源于网络(部分内容有修改),版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜

web前端开发cookie web前端怎么入门学习?

web前端编程该怎样学习?

做了那么多年Web编程,仔细想想,其实本质上就那点事儿,你抓住了几个重点问题,北大青鸟分享学起来一点都不难。

1.理解浏览器/服务器结构(B/S)

B/S是从90年代的客户端/服务器端发展而来,共同点都是由一个(或一组)服务器来服务多个客户端。差别在于:首先,C/S结构的客户端可能是由不同语言编写的,例如VB,Delphi,PowerBuilder等,B/S结构中浏览器成为了一个通用的客户端,程序以Web的方式呈现,不需要安装,服务器端的升级就意味着所有客户端的升级,这和C/S相比是个翻天覆地的变化。

其次B/S的访问协议也标准化为HTTP(s),而不是原来各种各样的私有协议。

最后B/S结构中的服务器面向全球用户访问,而不像C/S那样仅仅是局域网,所以压力更大,挑战更大。

2.Web页面是怎么组成的?

简单来说就是HTML+CSS+Java,我们看到的Web界面就是由这三者组成。

HTML负责结构,CSS负责展现,而Java负责行为。

我们说的前端开发也主要是做这一块,对于前端工程师,需要能理解DOM模型,以及如何通过java(例如JQuery等框架)来操作DOM模型。

3.浏览器和服务器是怎么打交道的?

当然是HTTP!HTTP说穿了就是浏览器和服务器聊天是的一种约定,这个约定确保双方互相理解。

完整的HTTP是非常复杂的,《HTTP权威指南》一书厚达700多页。

其实我们最常用,也是最重要的也就那么几点:

(1)GET和POST。GET从服务器端获取数据,POST向服务器端发送数据(由此引出图片上传问题)

(2)HTTP是个没有状态的协议,需要通过额外的机制来维持状态(例如登录状态),常用的方法就是cookie。

(3)理解HTTP状态码

(4)理解同步vs异步(由此引出AJAX,以及JQuery等框架)

4.URL和代码的映射

理解url和代码之间的关联,例如www.xxx.com?action=login这样的url是怎么和后端的业务代码关联起来的?

这样的规则是在哪里定义的?用代码、注解还是配置文件?

后端的业务代码该如何组织?相信现在不会有人把业务逻辑都写到Servlet当中了,所以需要很多MVC框架像Struts,SpringMVC来组织代码,让系统清晰易懂。 我爱编程网

5.数据的验证、转换和绑定

如何保证浏览器发过来的数据是符合要求的?

例如不能为空、不超过8个字符、两个密码必须相等....,出错了得给出错误提示。

浏览器发过来的数据都是形如username=liuxin&password=123456这样简单的文本,但是后台程序却有着丰富的数据类型,什么String,Date,Integer等等。所以需要把文本变成指定语言的类型。

类型转换以后,后端的业务代码怎么才能有效的使用呢?最简单的就是弄一个key:value这个样的Map出来,业务代码直接用map.get(key)即可。高级一点的可以把页面发来的数据直接绑定到对象的属性上,并且支持数组,嵌套等复杂的结构。

例如user.name=liuxin&user.password=123456可以绑定到一个叫User的对象,其中有两个属性userName和password。

web前端开发cookie web前端怎么入门学习?

web前端怎么入门学习?

随着移动互联网的发展,web前端逐渐受到企业的重视,前端开发人员的薪资也水涨船高,越来越多的人看好前端行业的发展,想要转行加入。下面,给大家分享一份web前端学习路线,希望对初学者有所帮助。

在整个技术领域,Web前端开发永远站在一线直面用户体验,已成为当下互联网行业紧俏的高端技术岗位。目前Web前端薪资水平高,职业前景广阔,岗位缺口大,就业口径宽,想通过学习Web前端开发,想进入到该行业工作的人越来越多。Web前端入门相对简单,但是学习后期会越来越难,也无法掌握Web前端的精髓,这就需要专业的老师对其系统知识的传授与点拨。

对于零基础的人而言,要怎么学习web前端呢?

1、 前端页面重构。主要内容为PC端网站布局、Photoshop 工具及切图、H5移动端网页布局、HTML5+CSS3新特性与交互。学习目标是完成PC端网站布局,可实现响应式布局,一套代码适配 PC 端、移动端、平板设备等。

2、 前后端网页交互。主要内容为JavaScript语法全面进阶、ES6 到 ES10 新语法实践、jQuery 应用及插件使用、设计模式及插件编写、封装JS工具库及Web APIS、AJAX+PHP+MySQL前后端交互、前端工程化与模块化应用以及PC 端全栈开发项目等。学习目标是可以掌握前端工程化工具,如 git、gulp、webpack 等,搭建项目及开发项目。

3、 Node.js + 前端框架。主要内容为Node.js 全面进阶、Koa2+MongoDB搭建服务、Vue.js 框架、React.js 框架、小程序云开发与小程序框架、原生APP与混合APP、数据可视化与桌面应用等。学习目标是掌握桌面应用及可视化大数据,实现复杂数据展示类项目,能够独立完成前后台相关功能,胜任HTML5全栈开发工程师职位。

很多学习web前端的朋友都希望在学成后能找到一份满意的工作,所以我们在学习过程中一定要注意实战经验的积累,如果你所学的东西对企业没有用,那你所做的一切都是无用功。

互联网的发展,使得Web前端开发工程师对于大多数人来说是个全新的职业,在国内乃至国际上真正开始受到关注和发展的时间不到10年。Web前端开发作为网页制作的一个细分行业,在名称上有很明显的时代特征。

以上就是今天分享给大家的内容了,想要了解更多前端开发资讯,敬请关注我爱编程网!
与“web前端开发cookie web前端怎么入门学习?”相关推荐
web前端开发入门17t web前端怎么入门学习?
web前端开发入门17t web前端怎么入门学习?

Web前端新手要怎么入门?Web前端入门教程讲解今天小编要跟大家分享的文章是关于Web前端新手要怎么入门?Web前端入门教程讲解。初学编程的小伙伴经常会遇到的问题,1.没资源2.没人带3.不知道从何开始,小编也是从新手期过来的,所以很能理解萌新的难处,现在整理一些以前自己学习的一些资料送给大家,希望对广大初学小伙伴有帮助!给你学习前端的新手几个建议:第一:切

2023-10-10 08:33:05
web前端开发入门17q web前端怎么入门学习
web前端开发入门17q web前端怎么入门学习

转行做Web前端工程师要学习的入门知识汇总今天小编要跟大家分享的文章是关于转行做Web前端工程师要学习的入门知识汇总。想要学习Web前端知识的小伙伴们来和小编一起看一看吧,希望本篇文章能够对大家有所帮助。一、前端工程师的主要职责:前端工程师在不同的公司有不同的功能,但性质相似。1、网站设计与网页界面开发2、做网站界面开发3、Web界面开发,前端数

2023-10-16 12:51:58
web前端开发怎么进入 web前端怎么入门学习
web前端开发怎么进入 web前端怎么入门学习

web前端开发要怎样学?前端开发可以自学,也可以选择口碑好、信誉佳的机构学。互联网的发展带动了多种行业的发展,Web前端在互联网行业也发挥着越来越重要的作用。Web前端开发不仅在形式、内容和功能上也有了极大的丰富,而且对前端开发人员的要求越来越高。web全栈工程师5.0课程学习内容包括:①计算机基础以及PS基础②前端开发基础(HTML5开发、JavaScript基础

2023-09-12 04:13:47
入门web前端开发思路 web前端怎么入门学习?
入门web前端开发思路 web前端怎么入门学习?

WEB前端开发教程WEB前端开发入门攻略1、首先要从基本的HTML语言开始学起。网页的所有内容都是建立在HTML的基础之上,要想学好HTML,不要去使用任何集成工具,而是使用文本编辑器,直接从最简单的HTML可以写起。首先上网下载notepad++文本编辑器,一个好的文本编辑工具能达到事半功倍的效果。2、w3shcool网站提供各种前端开发教程,其教程很适合初学者学习。根据教程的每一步

2023-09-11 03:24:18
怎么用web前端开发 web前端怎么入门学习
怎么用web前端开发 web前端怎么入门学习

如何学习WEB前端开发?您好,学习web前端一定要有方向,推荐你一个web前端的学习方向:阶段1.前端核心基础HTML_CSS核心、JavaScript基础语法、JavaScript面向对象、JavaScriptDOM和BOM编程、jQuery框架阶段2.HTML5CSS3移动端核心HTML5新特性、Canvas专列、CSS3新特性、CSS3进阶、CSS3实例

2023-09-12 04:20:37
web前端自学开发 web前端怎么入门学习
web前端自学开发 web前端怎么入门学习

网页web前端开发要学些什么网页web前端开发要学些什么,一起来了解一下吧:1.html+css+js,是WEB前端开发最基础的知识。2.JQuery、html5+css3、http+ajax+json+nodejs+mysql+mongoDB等前后端交互、vue、react、小程序、app混合开发等进阶知识。3.更高级的知识板块,web安全,数据可视化,算法以及算法处理等。

2023-09-09 02:56:33
web前端开发学习在线 web前端怎么入门学习?
web前端开发学习在线 web前端怎么入门学习?

web前端需要学习哪些内容前端虽然学习起来是相对简单的,但是内容也不少,同时后期可以补充后端技能,成为现在热门的web全栈工程师。要学的内容主要有:①计算机基础以及PS基础②前端开发基础(HTML5开发、JavaScript基础到高级、jQuery网页特效、Bootstrap框架)③移动开发④前端高级开发(ECMAScript6、Veu.js框架开发、we

2023-09-17 20:30:11
web前端开发学习经验 web前端怎么入门学习
web前端开发学习经验 web前端怎么入门学习

如何高效学习web前端?以下是一些高效学习Web前端的方法:学习基础知识:首先,需要学习Web前端基础知识,例如HTML、CSS和JavaScript等。可以参考一些在线课程或教程,例如w3schools、Codecademy等,这些网站提供免费的Web前端教程。实践项目:学习Web前端不仅需要掌握理论知识,还需要实践项目。可以通过参与开源项目或者自己完成一些小

2023-09-20 22:32:32