第八章 ----- 确认访问用户身份的认证 某些 Web 页面只想让特定的人浏览,或者干脆仅本人可见。为达到这一目标,必不可少的就是认证功能。下面我们一起来学习学习一下认证机制。8.1、何为认证计算机本身无法判断坐在显示器前的使用者的身份。进一步说,也无法确认网络的那头究竟有谁。可见,为了弄清楚究竟是谁在访问服务器,就得让对方的客户端自报家门。可是,就算正在访问服务器的对方声称自己是 user,身份是否属实这点却也无从谈起。为确认 user 本人是否真的具有访问系统的权限,就需要核对 “登陆者本人才知道的信息”、“登陆者本人才会有的信息”。核对
第七章----确保 Web 安全的 HTTPS 在 HTTP 协议中有可能存在信息窃听或身份伪装等安全问题。使用 HTTPS 通信机制可以有效的防止这些问题。本章我们就了解一下 HTTPS 。7.1、HTTP 的缺点到现在为止,我们已了解到 HTTP 具有相当优秀和方便的一面,然而 HTTP 并非只有好的一面,事物皆具有两面性,它也是有很多不足之处的。HTTP 主要有这些不足,举例如下。这些问题不仅在 HTTP 上出现,其他未加密的协议中也会存在这类问题。除此之外,HTTP 本身还有很多缺点。而且,还有像某些特定的 Web 服务器和特定的 W
第六章-----HTTP 首部 HTTP 协议的请求和响应报文中必定包含 HTTP 首部,只是我们平时在使用 Web 的过程中感受不到它。本章我们一起来学习 HTTP 首部的结构,以及首部中各字段的用法。6.1、HTTP 报文首部HTTP 协议的请求和响应报文中必定包含 HTTP 首部。首部内容为客户端和服务端分别处理请求和响应提供所需要的信息。对于客户端用户来说,这些信息中的大部分内容都无须亲自查看。HTTP 请求报文在请求中,HTTP 报文由方法、URI、HTTP 版本、HTTP 首部字段等部分构成。下面的示例是访问 h
第五章----与 HTTP 协作的 Web 服务器 一台 web 服务器可搭建多个独立域名的 Web 网站,也可作为通信路径上的中转服务器提升传输效率。5.1、用单台虚拟机主机实现多个域名HTTP/1.1 规范允许一台 HTTP 服务器搭建多个 Web 站点。比如,提供 Web 托管服务(Web Hosting Service)的供应商,可以用一台服务器为多位客户服务,也可以以每位客户持有的域名运行各自不同的网站。这是因为利用了虚拟主机(Virtual Host,又称虚拟服务器)的功能。客户端使用 HTTP 协议访问服务器时,会经常采用类似 www.
第四章----返回结果的 HTTP状态码 HTTP 状态码负责表示客户端 HTTP 请求的返回结果、标记服务端的处理是否正常、通知出现的错误等工作。让我们通过本章的学习,好好了解一下状态码的工作机制。4.1、状态码告知从服务器返回的请求结果状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果。借助状态码,用户可以知道服务器是正常处理了请求,还是出现了错误。状态码如 200 OK,以 3 位数和原因短语组成。数字中的第一位指定了响应类别,后两位无分类。响应类别有一下 5 种。4.2、2XX 成功2XX 的响应结果表明请求被正
第三章----HTTP 报文内的 HTTP 信息 HTTP 通信过程包括从客户端发往服务端的请求及从服务端返回客户端的响应。本章就让我们来了解下请求和响应是怎样运作的。3.1、HTTP 报文用于 http 协议交互的信息称为 http 报文。请求端的 http 报文称为请求报文,响应端的报文称为响应报文。http 报文本身是由多行(报文首部与报文主体使用 CR + LF 作为换行符)数据构成的字符串文本。但是,通常不一定会存在报文主体。3.2、请求报文及响应报文结构我们来看下请求报文和响应报文结构。请求报文和响应报文的首部内容由以下数据组成
第二章----简单的 HTTP 协议 本章将针对 HTTP 协议结构进行讲解,主要使用 HTTP/1.1 版本。学完这章,想必大家就能理解 HTTP 协议的基础了。2.1、HTTP 协议用于客户端和服务端之间的通信HTTP 协议和 TCP/IP 协议族中众多的协议相同,用于客户端和服务器端互相通信。请求访问资源或则图片等一方叫做客户端,而提供资源的一方叫做服务器端。2.2、通过请求和响应交换的方式达成通信HTTP 协议规定,请求从客户端发出,最后服务端响应该请求并返回结果。请求报文组成结构请求报文是由请求方法、请求 URI、协议
号外号外!!!---- TCP/UDP 浅析与区别 传输层中协议在传输层是利用两种协议来接受应用层数据并进行传输,这两种协议有着迥然不同的作用与特点。一种是传输控制协议 TCP,另外一种是 数据报文协议 UDP。TCP 协议当两台计算机相互通信时,为了确保数据的完整可靠性。例如:我们在查看一个网页的时候不会缺少某个部分或则内容不会乱序等。我们就需要使用 TCP 协议来确保数据的完整可靠性。一、TCP 连接建立TCP 连接建立也称三次握手,如图:第一次握手:客户端会生成一个随机的序列号 SYN ,并发送给服务端,请求发送完后,客户端便进入了 S
号外号外!!!----浏览器渲染原理 1.1、进程和线程进程CPU 资源分配的最小单位(是用于资源和独立运行的最下单位)。线程CPU 调度的最小的单位(是建立在进程基础上的一次程序运行单位)。也就是说,对于操作系统而言,一个任务就是一个进程,比如打开一个浏览器就是启动了一个浏览器进程。例如如下:与此同时,一个进程可能同时不止做一件事。比如我们打开百度网盘,我们可以在下载文件的同时上传文件,这些事情就是由一个个的线程操作着。稍微形象点说,进程就好像是个工厂,工厂里面的工人好比线程,工厂里面里面可以拥有 1~n 个工人,每个工人负责某
事件循环 1、什么是同步函数,什么是异步函数?其实函数本身没有什么同步异步的区别,它只不过是一个包裹了一些语句或则另外一个函数的容器。真正区别它是否是异步函数,则是看它的执行触发条件是否是异步操作。比如,我们定义一个 function test() {};并且在 js 代码中的某个位置上对它进行调用 test(),因为它的执行触发条件是在 js 中同步执行的,因此它是个同步函数;另外当我们对某个 dom 元素绑定点击事件 onclick='test',因为它的执行触发条件是在 js 中异步执行的,因此它是个异步函数
字节跳动 ---- (一面) 第一题:Array中,使用reduce实现map第一步:我们应该利用Array原生对象得prototype在原生对象Array上重写mapArray.prototype.map = callBack第二步:我们要开始写callBack回调函数 const callBack = () => { console.log('this', this) } Array.prototy...
git基本命令行 系统整理(二) 之 代码仓库 一、建立本地代码库在本地创建代码库存在两种方式,一种是本地初始化版本库,另外一种是克隆远程代码库。1、本地初始化版本库命令行:git init(初始化版本库);ls -ah(查看一级子目录);只需要在所需文件夹的cmd环境中输入命令行git init,这样一个本地版本代码库就建好了。在里面会生成一个git文件,并且这个目录文件是用来跟踪管理版本库的,千万别动,不然版本库就被破坏了。默认gi...
git基本命令行 系统整理(一) 之 Git简介 一、Git的诞生Linus花费两周使用C语言开发的一个分布式版本管理系统,最初用于Linux社区的代码管理。二、集中式vs分布式1、集中式特性(如SVN)集中式版本管理系统,是由一台集中中央版本管理的服务器,管理这每个不同的版本。而其他电脑则是客户端,工作开始,客户端必需从中央服务器上拉取所需项目最新版本,修改完成再提交到中央服务器。就好像中央服务器是个图书馆,里面不同项目的不同版本都是一...
工作杂谈二(基于Vue项目) 一、关于vue中的$mount方法用于手动将项目APP挂载到一个DOM实例上,这样就可以不用在new Vue中声明el选项;情况一:传统使用el声明挂载DOMnew Vue({ el: '#app', render: h => h(App),})情况二:使用.$mount()方法// 建议使用此方法理由:因为在Elint中上述前者表达是并不符合规范的,而后者则是符合规范...
工作杂谈一(基于Vue项目) 一、关于vue中style标签中的lang及scoped属性lang属性 :标志此style是原生的css还是css预语言(比如,less,scss等)scoped属性:标志此style是否为全局样式(也就是说若加上此属性,当编译到浏览器后,会给每个样式对应的元素添加一个唯一标志的属性data-v-xxx,并且css选择器上会加上属性选择)例如:...
第十六章----HTML5脚本编程 一、跨文档消息传递二、原生拖放1)、拖放事件2)、自定义放置目标3)、dataTransfer对象4)、dropEffect和effectAllowed5)、draggable属性三、媒体元素1)、属性2)、事件3)、自定义媒体播放器4)、检测编辑解码器的支持情况5)、Audio类型四、历史状态管理...
第十五章----canvas 关于此章节,我主要说说canvas的基本用法,及相关的函数式多点随机渲染。(至于WebGL则是另外一种特殊的技术栈了)一、绘制矩形描边矩形:ctx.strokeRect()填充矩形:ctx.fillRect()二、绘制图形以下步骤是较为严格的基本绘制图形路径步骤第一步、获取2D上下文(拿起我们的画笔)const ctx = canvasNode.getContent('2d')//...
第十三章----事件 事件监听浏览器和用户的动作并执行相对应的事件处理程序,实现了两者的动态异步交互。事件处理程序则是交互瞬间的执行函数。这种在传统软件工程中称之为观察者模式。一、事件流1、事件冒泡事件冒泡就是从绑定事件的元素开始,依次向上层传递事件,直至传递到document对象结束2、事件捕获事件捕获就是从最外层开始触发事件,直至传递到所绑定事件的元素结束3、DOM事件流首先得说明一点,DOM事件流整...