Java面试知识点之计算机网络篇(一)
前言:在Java面试中,计算机网络的知识也是一项重点,因此笔者在此对计算机网络的相关知识进行总结。
1.OSI参考模型
自下而上:物理层(物理介质,比特流)、数据链路层(网卡、交换机)、网络层(IP协议)、传输层(TCP/UDP协议)、会话层(创建/建立/断开连接)、表示层(翻译,编码,压缩,加密)、应用层(HTTP协议)。
简化为TCP/IP模型:网络层(物理层、数据链路层、网络层)、传输层,会话层,应用层(表示层,应用层)。
参考:
https://www.cnblogs.com/evablogs/p/6709707.html
2.传输层作用
作用:传输层为它上面的应用层提供通信服务。
在OSI七层参考模型中,传输层是面向通信的最高层,也是用户功能的最底层。
传输层两大重要的功能:复用和分用。
1)复用:在发送端,多个应用进程公用一个传输层。
2)分用:在接收端,传输层会根据端口号将数据分派给不同的应用进程。
和网络层的区别:
1)网络层为不同主机提供通信服务,而传输层为不同主机的不同应用提供通信服务。
2)网络层只对报文头部进行差错检测,而传输层对整个报文进行差错检测。
参考:
https://blog.csdn.net/u010425776/article/details/55006347
注:该博文中给出了较为详细的传输层知识点。
3.“三次握手”与“四次挥手”
在tcp建立连接时,需要进行“三次握手”。关于“三次握手”的通俗理解:“你有空吗”,“我有空”,“OK,我来了”。
在tcp断开连接时,需要进行“四次挥手”。关于“四次挥手”的通俗理解:“我要走了”,“没问题”,“不忙,他也要走”,“好,那我和他一起走”。
参考:
https://www.cnblogs.com/SeaSky0606/p/4741982.html
https://blog.csdn.net/u010425776/article/details/55006347
4.TCP的长连接和短连接
长连接:指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接。
在数据库连接池中,一般使用的是长连接,这样比较节约资源。
短连接:短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接。
参考:
https://www.cnblogs.com/onlysun/p/4520553.html
5.HTTP工作原理
要点:
1)HTTP是一个无状态协议,为应用层协议,基于TCP/IP之上。
2)HTTP的一个工作过程分为:地址解析、封装HTTP请求数据包、通过TCP建立连接、客户端发送请求指令、服务器响应、服务器关闭连接。
参考:
https://blog.csdn.net/hguisu/article/details/8680808
6.HTTP中请求、响应、缓存
要点:
1)请求由请求行、请求头和请求正文组成。
2)响应由状态行、消息报头和响应正文组成。
3)缓存可以提高了访问的流畅性。
参考:
https://blog.csdn.net/hguisu/article/details/8683290
7.HTTP1.0和HTTP1.1区别
要点:
HTTP1.0每对Request/Response都使用一个新的连接。
HTTP1.1则支持持久连接Persistent Connection, 并且默认使用Persistent connection.
参考:
https://blog.csdn.net/hguisu/article/details/8608888
8.HTTPS的通信过程
主要在加解密的过程。
参考:
http://www.liqwei.com/network/protocol/2012/906.shtml
by Shawn Chen,2018.4.6日,晚。
Java面试知识点之计算机网络篇(一)的更多相关文章
- Java面试知识点之线程篇(三)
前言:这里继续对java线程相关知识点进行总结,不能间断. 1.yield()方法 yield()的作用是让步.它能让当前线程由“运行状态”进入到“就绪状态”,从而让其它具有相同优先级的等待线程获取执 ...
- Java面试知识点之线程篇(二)
前言:接上篇,这里继续对java线程相关知识点进行总结. 1.notify和notifyall的区别 notify()方法能够唤醒一个正在等待该对象的monitor的线程,当有多个线程都在等待该对象的 ...
- Java面试知识点之线程篇(一)
前言:在Java面试中,一定会遇到线程相关问题,因此笔者在这里总结Java中有关线程方面知识点,多数从网上得来(文中会贴出主要参考链接),有些也是笔者在面试中所遇到的问题,如有错误,请不吝指正.主要参 ...
- Java面试知识点之虚拟机篇(一)
前言:Java虚拟机的重要性不言而喻,不管是在实际工作中,还是面试中. 1.JVM架构 要点: 主要了解Java虚拟机运行时数据区:程序计数器.Java虚拟机栈.本地方法栈.Java堆和方法区. 参考 ...
- Java面试知识点之数据库篇(一)
前言:数据库的相关知识,在面试中也经常出现,笔者认为非常有必要对此类知识进行相关总结. 1.索引 索引是对数据库表中一列或多列的值进行排序的结构,是帮助数据库高效获取数据的数据结构. 通俗理解:索引就 ...
- Java 面试知识点解析(五)——网络协议篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- Java 面试知识点解析(二)——高并发编程篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- Java 面试知识点解析(三)——JVM篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- Java 面试知识点解析(四)——版本特性篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
随机推荐
- php截取中文字符串无乱码的方法
利用php内置方法mb_substr截取中文不乱码,使用起来非常简单 <?php $str = '我喜欢laravel or yii2'; echo mb_substr($str, 0, 1, ...
- 【Java每日一题】20170120
20170119问题解析请点击今日问题下方的“[Java每日一题]20170120”查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; import jav ...
- JVM运行时数据区内容简述
JVM运行时数据区分为五个部分:程序计数器.虚拟机栈.本地方法栈.堆.方法区.如下图所示,五部分其中又分为线程共享区域和线程私有区域,下面将分别介绍每一部分. 1. PC程序计数器 程序计数器是一块较 ...
- Centos6.5安装MySQL5.6备忘记录
Centos6.5安装MySQL5.6 1. 查看系统状态 [root@itzhouq32 tools]# cat /etc/issue CentOS release 6.5 (Final) Kern ...
- C#设计模式之三抽象工厂模式(AbstractFactory)【创建型】
一.引言 写了3篇有关设计模式的文章了,大家有了些反馈,说能从中学到一些东西,我感到很欣慰,那就继续努力.今天我要写第四个模式了,该模式叫抽象工厂.上一篇文章我们讲了[工厂方法]模式,它是为了解决[简 ...
- 查看linux 服务器还剩多少空间
df -hl 或者 df -m
- div 中图片溢出问题及 CSS3中图片翻转问题
如果设置一个div 装两张以上的图片,如果不设置好div的宽度和高度,就会使图片溢出. 我们知道,div是可以由图片撑开其宽高的,也就是说如果只放一张图片的情况下,不设置div的宽高,div的宽高会默 ...
- Python变量和简单数据类型
变量的命名和使用 在Python中使用变量时 ,需要遵守一定的规则和指南. 变量名只能包含字母‘数字和下划线 变量名不能包含空格,但可以用下划线分割其中单词 不要将Python关键字和函数名用作变量名 ...
- VR技术了解(作业)
增强现实技术 概念:将现实世界和虚拟世界无缝集成的新技术. 突出特点: 真实世界与虚拟的信息集成 实时交互 三维空间中增添定位虚拟物 应用 医疗领域:医生可以利用增强现实技术,轻易地进行手术部位的精确 ...
- Python绘图工具Plotly的简单使用
1.Plotly被称为史上最好的绘图工具之一,为了更好的展示金融数据的复杂性. Plotly的官方网站为:https://plot.ly/ python量化的关键是金融数据可视化,无论是传统的K线图, ...