基础_TCP/IP

Posted lzxx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基础_TCP/IP相关的知识,希望对你有一定的参考价值。

概念明确:

1:TCP/IP代表传输控制协议/网际协议,指的是一系列协议  为什么会叫TCP/IP、因为用的多,

2:HTTP 是属于应用层的协议 

3:OSI七层模型和TCP/IP 平等,只是TCP/IP协议簇被广泛使用

TCP/IP协议簇基本框架就:应用层,传输层,网络层,链路层

最直白的解释 :如下 

由光纤铺起来的一条IP高速路,一辆TPC卡车 载着你买的HTTP货物,真正发送到你家去

1:为什么是HTTP货物,不是其他ftp,ssh啊之类的,  你指望一家卖五金店的卖玩具? 所以你让浏览器不用http 用其他协议?

2:为什么是TCP卡车,如果卡车装的是一箱子钱,tcp像是配备了保镖(特殊的机制保证数据安全 不会传给别人) 你会使用UDP 三轮车还没有导航来到你的村里,随便送给一家?

3:为什么是IP高速公路:你先也可以选择走别的烂泥路并且建在喜马拉雅山的烂泥路协议(当然建成了能更快登顶,这就是特殊人群,特殊用处),不拦着你

5:为什么是光纤:你也可以用 线路,无线电

所以为什么四层协议里面各种模型叫做tcp/ip 因为用的多,比其他的好用

技术图片

 

 

有了如上明确的概念 于是秃头的面试官拿着你的简历,眼睛斜视着你,嘴角勾起微笑就问道: 脑海中同时想起自己曾经被这些该死的问题支配的恐惧

1:请问HTTP和HTTPS的区别

概念:

  HTTP是什么:超文本  传输  协议

  超文本:图片,音频,文字, 这些叫做数据

  传输:就是数据需要经过一系列的物理介质从一个端系统传送到另外一个端系统的过程。通常我们把传输数据包的一方称为请求方,把接到二进制数据包的一方称为应答方

 

  协议:指的就是是网络中(包括互联网)传递、管理信息的一些规范。如同人与人之间相互交流是需要遵循一定的规矩一样,计算机之间的相互通信需要共同遵守一定的规则,这些         规则就称为协议,只不过是网络协议。

        SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持

        SSL(Secure Sockets Layer 安全套接字协议),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层与应用层之间对网络连接进行加密

回答:

  首先 第一点:HTTP是超文本传输协议,建立在TCP/IP的基础之上的 但是HTTP 是未经安全加密的协议 所以你的货物容易被偷

          第二点:HTTPS比HTTP更安全,因为多了一层 TLS/SSL协议

          第三点:https在地址栏是一https://开头,http是以:http开头 

          第四点:HTTP 的默认端口是 80,而 HTTPS 的默认端口是 443。

 

当你回答这些之后,面试官泛起一些波澜,这小子有货!

于是

2请问 HTTP 里面的GET和POST的区别

get:1:请求服务器返回资源,2:不安全因为请求参数会凭借在url后面,容易窃听篡改:3:长度有限制:4:会被浏览器cache缓存

post:1:数据提交2:长度没限制

在回答完之后,突然面试官插了一嘴,为什么get是不安全的,post和get谁更安全

错误回答:啊呀肯定post更安全啊,因为get传输方式是在url显示啊,容易被截获啊

正确回答:你错了,面试官,当你问起这个问题之后,你就没考虑到HTTP协议的存在,来我给你上一课

                        首先: HTTP协议中提到GET是安全的方法(safe method) 其意思是说GET方法不会改变服务器端数据,所以不会产生副作用。

          如果是该用POST的地方用了GET,又说GET不安全,那GET也太冤枉了。

          也就是说,只要我们正确选择使用GETPOST,那么GET是安全的。

                      当然以上回答之针对于get和post谁更安全这个话题

 

被将了一军的面试官,擦着额头上的虚汗,暗道:既然说到http那么

3请问什么是无状态协议,HTTP属于无状态协议吗,怎么解决无状态协议

1:无状态协议是:浏览器对于个人操作是没有记忆能力的,像我们登录网站,下次自动记住密码是Cookie的作用

2:HTTP不属于无状态协议啊

3:怎么解决:使用Cookie,

 

面试官:这小子我不信,问不倒他,既然说到登录网站那么

4请问你在地址栏输入www.****.com发送了什么

1:浏览器会根据你输入的 URL 地址,去查找域名是否被本地 DNS 缓存,不同浏览器对 DNS 的设置不同,如果浏览器缓存了你想访问的 URL 地址,那就直接返回 ip。如果没有缓存你的 URL 地址,浏览器就会发起系统调用来查询本机 hosts 文件是否有配置 ip 地址,如果找到,直接返回。如果找不到,就向网络中发起一个 DNS 查询。

2:查询方式是先:根域名服务器 -> 顶级域名服务器 -> 权威 DNS 服务器 查到之后告诉你目标Ip地址

3:浏览器与服务器建立TCP链接,

4:建立链接之后,浏览器发送http,GET请求 然后返回给你

 

面试官:这小伙子技术是真的可以,但我不甘心,于是乎终极一问

5:既然你说到浏览器与服务器建立TCP链接,那么 什么是TCP三次握手和四次挥手

TCP三次握手是建立链接:

通俗;

小明 - 客户端 小红 - 服务端

  • 小明给小红打电话,接通了后,小明说喂,能听到吗,这就相当于是连接建立。
  • 小红给小明回应,能听到,你能听到我说的话吗,这就相当于是请求响应。
  • 小明听到小红的回应后,好的,这相当于是连接确认。在这之后小明和小红就可以通话/交换信息了。

图解:

技术图片

 

 

 

面试官:小伙子你不错,恭喜你面试外卖岗位成功,下面让HR找你砍工资吧!

 

以上内容借鉴地址:

面试HTTP:https://www.cnblogs.com/cxuanBlog/p/12735623.html

TCP/IP的区别:https://www.cnblogs.com/xianlei/p/tcpip_http.html

深入浅出TCP/IP协议:https://www.cnblogs.com/onepixel/p/7092302.html

 

以上是关于基础_TCP/IP的主要内容,如果未能解决你的问题,请参考以下文章

Android tcp/ip 读写缓冲区脱离主代码

HTTP笔记_01_HTTP相关的协议

TCP/IP 在 Windows 下的实现

操作系统网络__网络基础

Linux 系统的网络基础_all

网络通信技术基础_Socket通信概念与原理