网络知识笔记

冯诺依曼式计算机———冯诺依曼(计算机之父)

运算器
CPU与GPU(显卡)
存储器
内存:(断电数据清空,读写速度快)
硬盘(辅存):(数据持久化,读写速度相对较慢)
控制器
主板一些器件
输入设备
键盘,鼠标,麦克风,网口
输出设备
显示器,耳机,网口

IP地址的格式
IP地址分为四个段:x.xxx.xxx.xxx,每个段0~255.

IP地址的分类
一个IP地址分为两个部分:网络ID(第一段),主机ID(后三段)
主要看第一段

A类:0.0.0.0~127.255.255.255 (一个网络能有1600+万台)
B类:128.0.0.0~191.255.255.255(其中172.16.0.0到172.31.255.255为私有)
C类:192.0.0.0~223.255.255.255(其中192.168.xxx.xxx为私有)
D类:多播地址 224.0.0.1—239.255.255.254
E类:240.0.0.1—255.255.255.254

域名与DNS解析
问:能通过域名直接访问到一台机器吗?
答:不可以的。
域名与IP形成对应关系

首先,计算机是不知道域名对应的IP,
问路由器。如果路由器认识这个域名,就会返回一个IP,然后计算机访问这个IP。如果不认识,他就访问上一层路由器。如果问道城市这个级别的路由器的时候还不认识,就访问DNS服务器,如果DNS服务器叶不认识,就像上一层DNS服务器查找。

互联网建立的时候,有13台总的DNS服务器 (现在应该不止)

面试题:当向浏览器的地址栏中输入一个url按下回车之后,网络中都会发生什么?
答:先看浏览器的缓存,认识的话直接访问,不认识
看本机的host (本机的host不会缓存)
127.0.0.1表示本机,localhost
0.0.0.0表示不知道IP,当不知道IP时默认到本机
在看家里路由器,
没有看上级路由器,城市的DNS服务器。如上。
直到找到gDNS服务器,即总DNS服务器,这里面一定有

五层网络模型

应用层 ------HTTP协议,DNS协议

运输层-------TCP协议,UDP协议

网络层--------IP地址–IP协议

数据链路层------mac地址

物理层

GET与POST有什么区别?(面试题)

1,是基于什么前提的?如果上面前提都没有,不使用任何规范,只考虑语法和理论上的HTTP协议。那GET与POST几乎没有什么区别,只有名字不一样。
2,如果是基于RFC规范的。
(1)理论上的(Specification):GET与POST具有相同的语法,但语义不同,get是用来获取数据的,post用来发送数据的,其他方面没什么不同。
(2)实现上的(Implementation):各个浏览器就是这个规范的实现者。(基于浏览器实现上的)
常见的不同:
1)GET请求的数据在URL上可见。POST请求不显示在URL中。(url不等于地址栏)
2)GET的长度是有限制的,POST长度无限制
3)GET请求的数据可以被收藏为书签,POST请求的数据不能收藏为书签
4)GET请求后,按后退按钮,刷新按钮无影响,post数据会被重新提交
5)GET编码类型:application/x-www-form-url,post编码类型:有很多种,如:
encodeapplication/x-www-form-urlencoded和multipart/form-data
6)GET历史参数会被保存在浏览器里,post不会保存在浏览器里
7)GET只允许ASCII编码,POST没有编码限制,允许发二进制。
8)GET与POST相比,安全性较差(两个都是不安全的),因为发的数据是URL的一部分。

Cookie与Session

保持登录状态是怎么做到的?
按照正常的http协议是做不到的,因为它是上下文无关协议。所以cookie是可以持久化存储的,cookie是存储在浏览器的,不是存储在某个页面。可以长期存储(能自己设置),cookie即使存储在浏览器,也是存放在不同的域名下的。cookie缺点:别人复制了cookie的信息可以登录你的账号。(XSS注入攻击)
cookie是存在浏览器里,session存在服务器,session相对安全。

session的缺点:用户量非常大的时候,服务器端很耗资源

发送网络请求
1)直接在地址栏上输入域名
2)location.href=" " (url),可以发出网络请求,但是页面会发生跳转
3)带有src或者href的标签,请求可以发出,服务器可以处理也可以返回,但返回之后能否被使用,还有看浏览器。
4)带有action的标签,如form表单,但发送请求之后,也会跳转页面
5)Ajax

        // 要素
		// 1,请求方式,get,post
		// 2,url
		var xhr = null;
		if (window.XMLHttpRequest) {
			xhr = new XMLHttpRequest();
		} else {
			xhr = new ActiveXObject(); //ie6兼容
		}
		xhr.open('get', 'http://developer.duyiedu.com/edu/testAjax'); //这里跨域了,端口默认80
		xhr.send();

协议,域名,端口号有任意一个不一样就算跨域,跨域发生在浏览器端(浏览器接收数据),浏览器在接收服务器返回的数据之后,判断为跨域。
哪些资源算跨域请求的资源?
1)后端返回的数据
2)其他域的cookie
3)其他域的缓存

解决跨域问题:
1)后端(别人家的,你要访问的)配合我们进行跨域
(1)JSONP(正常情况下,返回的数据是JSON格式,JSONP是一种特殊的格式)。
(2)后端设置Access-Control-Allow-Origin属性以支持跨域。
2)后端不配好我们进行跨域
(3)iframe标签(只能显示,不能控制)
(4)通过后端代理(自己的后端)

Ajax请求:

// 要素
		// 1,请求方式,get,post
		// 2,url
		var xhr = null;
		if (window.XMLHttpRequest) {
			xhr = new XMLHttpRequest();
		} else {
			xhr = new ActiveXObject(); //ie6兼容
		}
		xhr.open('get', 'http://developer.duyiedu.com/edu/testAjaxCrossOrigin'); //这里open方法还有第三个参数(true或者false),true或者不传表示异步,false表示同步
		xhr.onreadystatechange = function () {
			// console.log(xhr.readyState)
			// readyState==4 表示请求已经完成,已经接收到数据
			// status==200 网络请求,结果都会有一个状态码,表示请求是否正常,200表示成功
			// 2**表示成功
			// 3**表示重定向
			// 4**表示客户端错误,404页面没找到
			// 5**表示服务端错误.
			if (xhr.readyState == 4 && xhr.status == 200) {
				console.log(xhr.responseText);
				var data = JSON.parse(xhr.responseText); //将其转化为JSON对象
			}
		}
		xhr.send();
function getKey(cookie) { // var cookie = getCookie('vjkl5'); var arrFun = [makeKey_0, makeKey_1, makeKey_2, makeKey_3, makeKey_4, makeKey_5, makeKey_6, makeKey_7, makeKey_8, makeKey_9, makeKey_10, makeKey_11, makeKey_12, makeKey_13, makeKey_14, makeKey_15, makeKey_16, makeKey_17, makeKey_18, makeKey_19, makeKey_20, makeKey_21, makeKey_22, makeKey_23, makeKey_24, makeKey_25, makeKey_26, makeKey_27, makeKey_28, makeKey_29, makeKey_30, makeKey_31, makeKey_32, makeKey_33, makeKey_34, makeKey_35, makeKey_36, makeKey_37, makeKey_38, makeKey_39, makeKey_40, makeKey_41, makeKey_42, makeKey_43, makeKey_44, makeKey_45, makeKey_46, makeKey_47, makeKey_48, makeKey_49, makeKey_50, makeKey_51, makeKey_52, makeKey_53, makeKey_54, makeKey_55, makeKey_56, makeKey_57, makeKey_58, makeKey_59, makeKey_60, makeKey_61, makeKey_62, makeKey_63, makeKey_64, makeKey_65, makeKey_66, makeKey_67, makeKey_68, makeKey_69, makeKey_70, makeKey_71, makeKey_72, makeKey_73, makeKey_74, makeKey_75, makeKey_76, makeKey_77, makeKey_78, makeKey_79, makeKey_80, makeKey_81, makeKey_82, makeKey_83, makeKey_84, makeKey_85, makeKey_86, makeKey_87, makeKey_88, makeKey_89, makeKey_90, makeKey_91, makeKey_92, makeKey_93, makeKey_94, makeKey_95, makeKey_96, makeKey_97, makeKey_98, makeKey_99, makeKey_100, makeKey_101, makeKey_102, makeKey_103, makeKey_104, makeKey_105, makeKey_106, makeKey_107, makeKey_108, makeKey_109, makeKey_110, makeKey_111, makeKey_112, makeKey_113, makeKey_114, makeKey_115, makeKey_116, makeKey_117, makeKey_118, makeKey_119, makeKey_120, makeKey_121, makeKey_122, makeKey_123, makeKey_124, makeKey_125, makeKey_126, makeKey_127, makeKey_128, makeKey_129, makeKey_130, makeKey_131, makeKey_132, makeKey_133, makeKey_134, makeKey_135, makeKey_136, makeKey_137, makeKey_138, makeKey_139, makeKey_140, makeKey_141, makeKey_142, makeKey_143, makeKey_144, makeKey_145, makeKey_146, makeKey_147, makeKey_148, makeKey_149, makeKey_150, makeKey_151, makeKey_152, makeKey_153, makeKey_154, makeKey_155, makeKey_156, makeKey_157, makeKey_158, makeKey_159, makeKey_160, makeKey_161, makeKey_162, makeKey_163, makeKey_164, makeKey_165, makeKey_166, makeKey_167, makeKey_168, makeKey_169, makeKey_170, makeKey_171, makeKey_172, makeKey_173, makeKey_174, makeKey_175, makeKey_176, makeKey_177, makeKey_178, makeKey_179, makeKey_180, makeKey_181, makeKey_182, makeKey_183, makeKey_184, makeKey_185, makeKey_186, makeKey_187, makeKey_188, makeKey_189, makeKey_190, makeKey_191, makeKey_192, makeKey_193, makeKey_194, makeKey_195, makeKey_196, makeKey_197, makeKey_198, makeKey_199, makeKey_200, makeKey_201, makeKey_202, makeKey_203, makeKey_204, makeKey_205, makeKey_206, makeKey_207, makeKey_208, makeKey_209, makeKey_210, makeKey_211, makeKey_212, makeKey_213, makeKey_214, makeKey_215, makeKey_216, makeKey_217, makeKey_218, makeKey_219, makeKey_220, makeKey_221, makeKey_222, makeKey_223, makeKey_224, makeKey_225, makeKey_226, makeKey_227, makeKey_228, makeKey_229, makeKey_230, makeKey_231, makeKey_232, makeKey_233, makeKey_234, makeKey_235, makeKey_236, makeKey_237, makeKey_238, makeKey_239, makeKey_240, makeKey_241, makeKey_242, makeKey_243, makeKey_244, makeKey_245, makeKey_246, makeKey_247, makeKey_248, makeKey_249, makeKey_250, makeKey_251, makeKey_252, makeKey_253, makeKey_254, makeKey_255, makeKey_256, makeKey_257, makeKey_258, makeKey_259, makeKey_260, makeKey_261, makeKey_262, makeKey_263, makeKey_264, makeKey_265, makeKey_266, makeKey_267, makeKey_268, makeKey_269, makeKey_270, makeKey_271, makeKey_272, makeKey_273, makeKey_274, makeKey_275, makeKey_276, makeKey_277, makeKey_278, makeKey_279, makeKey_280, makeKey_281, makeKey_282, makeKey_283, makeKey_284, makeKey_285, makeKey_286, makeKey_287, makeKey_288, makeKey_289, makeKey_290, makeKey_291, makeKey_292, makeKey_293, makeKey_294, makeKey_295, makeKey_296, makeKey_297, makeKey_298, makeKey_299, makeKey_300, makeKey_301, makeKey_302, makeKey_303, makeKey_304, makeKey_305, makeKey_306, makeKey_307, makeKey_308, makeKey_309, makeKey_310, makeKey_311, makeKey_312, makeKey_313, makeKey_314, makeKey_315, makeKey_316, makeKey_317, makeKey_318, makeKey_319, makeKey_320, makeKey_321, makeKey_322, makeKey_323, makeKey_324, makeKey_325, makeKey_326, makeKey_327, makeKey_328, makeKey_329, makeKey_330, makeKey_331, makeKey_332, makeKey_333, makeKey_334, makeKey_335, makeKey_336, makeKey_337, makeKey_338, makeKey_339, makeKey_340, makeKey_341, makeKey_342, makeKey_343, makeKey_344, makeKey_345, makeKey_346, makeKey_347, makeKey_348, makeKey_349, makeKey_350, makeKey_351, makeKey_352, makeKey_353, makeKey_354, makeKey_355, makeKey_356, makeKey_357, makeKey_358, makeKey_359, makeKey_360, makeKey_361, makeKey_362, makeKey_363, makeKey_364, makeKey_365, makeKey_366, makeKey_367, makeKey_368, makeKey_369, makeKey_370, makeKey_371, makeKey_372, makeKey_373, makeKey_374, makeKey_375, makeKey_376, makeKey_377, makeKey_378, makeKey_379, makeKey_380, makeKey_381, makeKey_382, makeKey_383, makeKey_384, makeKey_385, makeKey_386, makeKey_387, makeKey_388, makeKey_389, makeKey_390, makeKey_391, makeKey_392, makeKey_393, makeKey_394, makeKey_395, makeKey_396, makeKey_397, makeKey_398, makeKey_399]; var funIndex = strToLong(cookie) % arrFun.length; var fun = arrFun[funIndex]; var result = fun(cookie); return result } function Navi(id) { var unzipid = unzip(id); var realid = com.str.Decrypt(unzipid); return realid }
爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值