* * [域名解析](about:blank#_60)
* [域名服务器](about:blank#_63)
* [域名服务器的分类](about:blank#_66)
* [域名解析过程](about:blank#_76)
* [四、万维网应用](about:blank#_84)
* * [万维网应用结构](about:blank#_86)
* [HTTP](about:blank#HTTP_102)
* * [概念](about:blank#_103)
* [版本](about:blank#_106)
* [连接](about:blank#_109)
* [HTTP报文](about:blank#HTTP_117)
* [状态码](about:blank#_125)
* [Cookie](about:blank#Cookie_127)
* * [工作原理](about:blank#_136)
* [五、Internet电子邮件](about:blank#Internet_140)
* * [电子邮件系统结构](about:blank#_141)
* * [用户代理](about:blank#_146)
* [邮件服务器](about:blank#_151)
* [邮件发送和邮件读取协议](about:blank#_154)
* [SMTP](about:blank#SMTP_161)
* * [通信三阶段](about:blank#_167)
* [电子邮件格式及MIME](about:blank#MIME_172)
* [邮件读取协议](about:blank#_182)
* * [第三版的邮局协议----POP3](about:blank#POP3_184)
* [互联网邮件访问协议----IMAP](about:blank#IMAP_191)
* [HTTP](about:blank#HTTP_197)
* [六、FTP](about:blank#FTP_204)
* [七、P2P应用](about:blank#P2P_211)
* * [P2P应用优势](about:blank#P2P_218)
=======================================================================
主要分为三种类型:
客户/服务器(C/S)结构
通信只在客户和服务器之间进行,客户之间不进行直接通信
客户主动向服务器发起请求,申请通信
P2P(Peer to Peer)结构
每个对等端都同时具有C/S应用的客户与服务端的特征,是个服务器与客户的结合体,对等端之间直接通信
即每个对等端既可以请求别人提供服务也可以为别人提供服务
混合结构
上述两结构的混合类型
既有中心服务器的存在,又有对等端(客户)间的直接通信
- 注意:无论哪种模式,最基本的通信原理是一致的
通信过程两者间必有一个充当客户端一个充当服务端
C/S通信基本原理
服务器端运行的是服务端进程,被动地等待客户请求服务;
客户端运行客户进程,主动发起通信,请求服务器进程提供服务
应用进程间遵循应用层协议交换应用层报文 应用层协议
基本概念
互联网使用的命名系统,用于将域名转换为IP 地址
层次化域名空间
命名方法
-
国家顶级域名nTLD
每个域名代表一个国家的主机
-
通用顶级域名gTLD
某一类机构或组织的所有主机的域名
-
基础结构域名
只有一个域名----arpa
从叶结点出发一级一级往上便可得到完整域名
优点:容易查找,便于分布式的管理
域名服务器
域名解析
将域名映射成IP地址的过程
域名服务器
为了实现域名解析,需建立分布式的数据库,存储网络中域名与IP地址的映射关系数据
域名服务器的分类
-
根域名服务器
十三套,管理根域域名
-
顶级域名服务器
管理顶级域名
-
权威域名服务器
具体管理某一个域的域名并提供服务
-
本地域名服务器
直接为客户提供服务
域名解析过程
1.递归查询
代替查询主机(代替客户端),进行进一步的域名查询,并将最终解析结果发送给查询主机或服务端
2. 迭代查询
只是将下一步要查询的服务器告知查询主机或服务端
万维网应用结构
-
web服务器
网页资源的存储
-
浏览器
-
超文本传输协议(HTTP)
客户浏览网页资源通过超文本传输协议实现
客户浏览网页的过程
-
客户机向web服务器发起TCP连接
-
客户机上的浏览器程序根据要访问的页面网址,发出HTTP请求
-
服务器接收请求报文,并根据URL找到相应的网页资源,其中网页资源用HTML语言编写
-
网页资源作为响应信息回馈到浏览器
-
浏览器接收后,以一定的格式呈现在用户面前
HTTP
概念
超文本传输协议,定义浏览器如何向web服务器发送请求,以及web服务器如何对浏览器进行响应
版本
HTTP/1.0 和 HTTP/1.1
连接
非持久连接,持久连接(1.0默认非持久,1.1默认持久)
非持久连接,获取一个图像后断开连接,若还有图像需要获取,则重新请求连接
持久连接,获取一个图像后不断开连接
注意:持久连接方式下服务器的压力比较大
HTTP报文
-
请求报文
从客户向服务器发送请求报文
-
响应报文
从服务器到客户的回答
状态码
Cookie
小型文本文件,指某些网站为了辨别用户身份、进行会话跟踪而储存在用户本地终端上的数据。
弥补了HTTP协议无状态性的不足,有利于针对性的服务
Cookie 中包含了一个分配给某个用户的特定编号,分别存储在浏览器和服务器中。
当用户访问某个网站时,该网站会分配给一个用户编号,当用户再访问该网站时,网站可以通过编号知道该用户之前的访问状态。
工作原理
电子邮件系统结构
主要包括邮件服务器、简单邮件传输协议(SMTP)、用户代理和邮件读取协议
用户代理
用户与电子邮件系统的接口
基本功能:撰写、显示、处理、通信
邮件服务器
功能:发送和接收文件,同时向发信人报告邮件传送的情况
邮件发送和邮件读取协议
邮件发送时读取使用不同的协议
简单邮件发送协议SMTP:用于在用户代理向邮件服务器或邮件服务器之间发送邮件。
邮局协议POP3:用于用户代理从邮件服务器读取邮件。
SMTP
Internet电子邮件中核心应用层协议,实现邮件服务器之间或用户代理到邮件服务器之间的邮件传输
基本交互方式:SMTP客户端发送命令,命令可能携带参数,SMTP服务器对命令进行应答
JavaScript
-
js的基本类型有哪些?引用类型有哪些?null和undefined的区别。
-
如何判断一个变量是Array类型?如何判断一个变量是Number类型?(都不止一种)
-
Object是引用类型嘛?引用类型和基本类型有什么区别?哪个是存在堆哪一个是存在栈上面的?
-
JS常见的dom操作api
-
解释一下事件冒泡和事件捕获
-
事件委托(手写例子),事件冒泡和捕获,如何阻止冒泡?如何组织默认事件?
-
对闭包的理解?什么时候构成闭包?闭包的实现方法?闭包的优缺点?
-
this有哪些使用场景?跟C,Java中的this有什么区别?如何改变this的值?
-
call,apply,bind
-
显示原型和隐式原型,手绘原型链,原型链是什么?为什么要有原型链
-
创建对象的多种方式
-
实现继承的多种方式和优缺点
-
new 一个对象具体做了什么
-
手写Ajax,XMLHttpRequest
-
变量提升
-
举例说明一个匿名函数的典型用例
-
指出JS的宿主对象和原生对象的区别,为什么扩展JS内置对象不是好的做法?有哪些内置对象和内置函数?
-
attribute和property的区别
-
document load和document DOMContentLoaded两个事件的区别
-
JS代码调试