ns

深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 1

 ̄綄美尐妖づ 提交于 2020-04-04 08:32:32
备注 : 因为文章太长,所以将它分为三部分,本文是第二部分。 第一部分 : 深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 1 第二部分 : 深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 2 第三部分 : 深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 3 背景 “从浏览器中输入URL到页面加载的发生了什么“,这是一道经典的面试题,涉及到的知识面非常多,但作为一个自认为对网络知识掌握的比较好的老码农来说,回答这个问题自然不在话下。如果这道题目如果在面试出现,对我来说就是送分题啊。尽管如此,我还是愿意花一些时间根据我自己的理解回答一下这个题目,看我自己到底掌握的有多深,同时也把自己的知识梳理一下。 这让我想起另外一件往事,这道题有点类似于“在手机上浏览器上输入一个URL,手机做了一些什么”,我当时学习通信里的核心网时就给自己提出过这个问题。 我非常愿意将这个面试题的答案共享出来,一是希望得到大家的意见,二是也希望对那些不是特别熟的人起到一些帮助。 因为文章较长,我将它们分为三大部份,后面会提供该文章的完整PDF版本,供大家下载。 从本文里学到什么? 正如前面所说,这篇文章涉及到的知识面非常丰富,我相信您绝对可以从本文里学到很多基础知识,还有一些高级话题。 DNS的解析原理,常用命令,端口等 TCP

建设网站、独立博客(建站教程系列——申请、解析域名和部署服务器)

馋奶兔 提交于 2020-03-20 22:54:36
♣买域名 ♣域名设置DNS 解析、 添加A记录 ♣买服务器 ♣服务器端绑定(附加)域名 ♣安装wordpress 为了不浪费你的时间,在次声明:此篇介绍的操作是 国外网站注册域名 和 使用香港主机 的,不用备案就可以建站。如果不是你想要的,请绕道。 1.买域名 一说到买域名,就会纠结在国内买还是国外买,其实现在国内卖的域名比国外的(这里的国外指 godaddy网 )便宜,而且续费也便宜。但是,在国内买的话有风险,就是域名还不是真正是你的,不完全由你操控的。其实,只要你能保证你的网站内容或者博客内容不敏感的话,那就在国内买吧。在国内买的副作用如下: 所以我还是建议在国外买,我本人就是在国外的狗爹( godaddy网 )买的,当然你可以选其他国外网站,比如: name.com 或 namesilo.com 或 namechecp.com ,这里演示的是在狗爹网上买, 1.1 不是登录狗爹,而是去 老董 那里找个优惠的链接,点击链接会带你去狗爹官网: 1.2 在 godaddy网 输入你想买的域名( 注意注意:注意买的域名不被墙掉的, 如何检测呢?上 ),然后选中: 1.3 然后去结账 1.4 不隐私保护了,当然你钱多也是可以选的 1.5 可以用支付宝付款了。 注意!! 如果续费的时候不能用支付宝也不能用银联,而且你又没有资格办理国际信用卡,那么,我现在告诉你,有一种东西叫做 全球通 2

LeetCode 面试题05. 替换空格

核能气质少年 提交于 2020-03-04 00:05:09
题目链接: https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof/ 请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 示例 1: 输入:s = "We are happy." 输出:"We%20are%20happy." 限制: 0 <= s 的长度 <= 10000 1 char* replaceSpace(char* s){ 2 int len=strlen(s); 3 int i,j=0,cnt=0; 4 for(i=0;i<len;i++){ 5 if(s[i]==' ') cnt++; 6 } 7 char *ns=(char *)malloc(sizeof(char)*(len+3*(cnt+1))); 8 for(i=0;i<len;i++){ 9 if(s[i]!=' '){ 10 ns[j++]=s[i]; 11 }else{ 12 ns[j++]='%'; 13 ns[j++]='2'; 14 ns[j++]='0'; 15 } 16 } 17 ns[j]='\0'; 18 return ns; 19 } 来源: https://www.cnblogs.com/shixinzei/p/12405626.html

一些不常用但有用有意思的宏定义

懵懂的女人 提交于 2020-02-29 07:53:34
1. __deprecated_msg __deprecated_msg("这是一个废弃的方法") 2. NS_REQUIRES_SUPER NS_REQUIRES_SUPER , 在自定义的方法后面加上这个, 其子类在重写这个方法时候, 必须调用父类的这个方法, 不然会警告或者直接报错. 3. Debug模式使用NSLog输出, Release模式禁用NSLog #ifdef DEBUG #define NSLog(...) NSLog(__VA_ARGS__) #else #define NSLog(...) #endif 4. 断言NSAssert()使用 NSAssert(script, @"script is nil"); 这句意思是说, 如果script条件语句为NO, 则程序终止,打印后面的话. 断言在Debug模式下会导致程序终止并提醒, 在Release模式下不会终止也不会提示. #define NSAssert(condition, desc, ...) 来源: oschina 链接: https://my.oschina.net/u/2501614/blog/649554

NS的调试

允我心安 提交于 2020-02-08 05:00:41
NS的调试 (piyajee) 接触NS快一年了,但是还只能说是刚刚入了门,这一年里,从百思上确实学到了很多东西,NS的使用可能要告一段落了,有些心得体会跟大家分享一下,希望对还在入门的初学者有些帮助。主要是调试方面的,因为NS的代码太庞大了,因此出错后错误定位是非常重要的,有些可能不太对,还望各位高手指正。 1.1 使用GDB调试 在默认情况下不支持GDB调试,需要修改makefile.in:加上-g3选项 .cc.o: @rm -f $@ $(CPP) -g3 -c $(CFLAGS) $(INCLUDES) -o $@ $*.cc .c.o: @rm -f $@ $(CC) -g3 -c $(CFLAGS) $(INCLUDES) -o $@ $*.c 调试步骤: 1. 转到ns-2.29目录下,cd ns-2.29-allinone/ns-2.29 2. gdb ns 3. 设置断点:b filename.cc:123 4. r /root/xxx.tcl 常用调试命令: n: 单步不进入 s:单步进入 c:执行到下一断点 bt:查看堆栈调用 1.2 TCL调试 如果要支持TCL调试,在configure时加上—enable-debug选项,但是只要打开了enbale-debug选项,编译器检查更加严格,warning一般都会报错。 1.3 使用KDevelop调试NS

Linux下安装NS2软件

 ̄綄美尐妖づ 提交于 2020-02-08 02:07:32
由于论文中会用到NS2软件,重来没有用过,现在尝试在Linux下安装NS2软件,安装的步骤总结如下: 1. 下载NS2的软件包:wget http://sourceforge.net/project/showfiles.php?group_id=149743&package_id=169689&release_id=588643 (这个网址我没试过) 2. 解压下载的软件包: tar zxvf ns-allinone-2.33.tar.gz 3. 找到解压后的文件:cd ns-allinone-2.33 4. 安装软件包: ./install 5. 安装需要一些时间,我执行完上面的指令后,最后出现了如下信息: ld: libotcl.so: hidden symbol `__stack_chk_fail_local' isn't defined ld: final link failed: Nonrepresentable section on output make: *** [libotcl.so] Error 1 otcl-1.13 make failed! Exiting ... See http://www.isi.edu/nsnam/ns/ns-problems.html for problems 6. 然后找了一篇文章关于此安装的问题,然后尝试按照实行

.NET Core开发日志——依赖注入

家住魔仙堡 提交于 2019-12-26 22:38:41
依赖注入(DI)不是一个新的话题,它的出现是伴随着系统解耦的需要而几乎必然产生的。 在SOLID设计原则中,DIP(Dependency inversion principle)——依赖倒置,规定了“需依赖抽象,而非实现”的准则,该原则主要目的是通过引入抽象(比如接口)的方式降低模块之间的耦合性。与此原则相拟而又有所不同的是IoC(inversion of control)——控制反转设计原则。这项原则定义了应该由通用框架而非外部代码决定控制流(control flow)的概念。对控制反转的实现有数种技术,DI(Dependency injection)——依赖注入便是其中之一,而依赖注入技术同时又支持依赖倒置的设计原则,所以它被广泛使用并不是件令人意外的事情。 依赖注入的基本特性是借由一个对象提供对另一对象的依赖。这样的一个对象通常又被称为容器。容器负责被依赖对象的注册(register),解析(resolve)与释放(release),并具有将被依赖对象注入到依赖对象内部的功能。 在之前的ASP.NET开发过程中,要想使用到依赖注入技术必需依赖第三方类库,而在ASP.NET Core中,这项技术已经被引入到其自身的框架中。 容器 ASP.NET Core中使用ServiceProvider作为依赖注入的容器,它是在WebHostBuilder类中被引入的。 public

DNS & bind从基础到深入

末鹿安然 提交于 2019-12-21 15:33:47
本链接转载自: https://www.cnblogs.com/f-ck-need-u/p/7367503.html 仅供自学使用。 DNS是Domain name system的简称,有些地方也称为Domain name server,这东西是一个很大的话题。如果不是要配置DNS服务,只需要理解DNS的解析流程和DNS有关的基本知识即可。如果要配置DNS服务,则可以看完全文。 推荐阅读书籍:《DNS & bind》,第四版有中文版,第五版目前只有英文版。 7.1 DNS必懂基础 DNS主要是用于将域名解析为IP地址的协议,有时候也用于将IP地址反向解析成域名,所以DNS可以实现双向解析。 DNS可以使用TCP和UDP的53端口,基本使用UDP协议的53端口。 7.1.1 域的分类 域是分层管理的,就像中国的行政级别。 最高层的域是根域(root)".",就是一个点,它就像国家主席一样。全球只有13个根域服务器,基本上都在美国,中国一台根域服务器都没有。 根域的下一层就是第二层次的顶级域(TLD)了,那么它就是各省省长了。顶级域一般两种划分方法:按国家划分和按组织性质划分。 ◇ 按国家划分:.cn(中国)、.tw(台湾)、.hk(香港)。基本都是两个字母的。 ◇ 按组织性质划分:.org、.net、.com、.edu、.gov、.cc等。 ◇ 反向域:arpa

Web Service(CXF)整合Web应用No services have been found

末鹿安然 提交于 2019-12-05 04:32:08
先将CXF与Spring进行整合 web.xml文件 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <!--指定配置文件位置、名称--> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/hello-servlet.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!--CXF核心控制器--> <servlet>

深入理解 DNS

喜夏-厌秋 提交于 2019-12-04 23:09:33
深入理解 DNS 简介 DNS(Domain Name System)域名系统,它是一个将域名和 IP 地址相互映射的一个分布式数据库,把容易记忆的主机名转换成主机 IP 地址。 DNS使用 TCP 和 UDP 端口 53。当前,对于每一级域名长度的限制是 63 个字符,域名总长度则不能超过 253 个字符。 DNS备份 为防止服务中断和网络攻击,全球共有13台根DNS服务器,严格意义上来说不是13台,而是13个服务集群, 为什么是13? 专有名词 FQDN :完整合法域名,也就是根域(绝对域名) NS :权威域名服务器 顶级域 :用来指示某个国家 / 地区或组织使用的名称的类型名称,例如 .com 二级域 :个人或组织在因特网上使用的注册名称,例如 google.com 子域 :已注册的二级域名派生的域名,一般就是网站名,例如 www.google.com 主机名 :标识网络上的特定计算机,例如 h1.www.google.com DNS的基本解析流程 以客户端浏览器访问 www.lbinin.com 域名为例,首先,它会去检查当前浏览器缓存,如果有,就直接响应,如果没有,就继续往下找 接着,操作系统会去检查自己的 host 文件,如果从中没找到对应关系,会再到系统 DNS 缓存中查,如果缓存中有,就直接返回该域名所对应的 IP 如果缓存中没有,则会向我们事先设置好的 DNS