TCP/IP模型分为四层:网络接口层、网络层、传输层、应用层
传输层提供端到端的通信,定义的是进程寻址(传输层主要的协议:UDP和TCP)
TCP叫做传输控制协议,是面向链接、可靠传输的协议
ARP叫做地址解析协议,主要用于三层IP地址到二层MAC地址的解析
ARP欺骗主要是利用IP与MAC的绑定关系通信的原理,伪造绑定关系
ARP欺骗解决方案有:ARP静态绑定,安装ARP防火墙,启用交换机的动态ARP审查功能等
交换机具有最基本的学习和转发功能
VLAN(Virtual Local Area Network)的中文名为虚拟局域网。VLAN是一种将局域网设备从逻辑上划分成一个个网段
Http协议知识
1、说一下什么是Http协议?
对客户端和服务器端之间数据传输的格式规范,格式简称为“超文本传输协议”。
2、什么是Http协议无状态协议?怎么解决Http协议无状态协议?
无状态协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息
无状态协议解决办法: 通过1、Cookie 2、Session会话保存。
3、说一下Http协议中302状态
http协议中,返回状态码302表示重定向。 这种情况下,服务器返回的头部信息中会包含一个 Location 字段,内容是重定向到的url。
4、Http协议有什么组成?
请求报文包含三部分:
请求行:包含请求方法、URI、HTTP版本信息
请求首部字段
请求内容实体
响应报文包含三部分:
状态行:包含HTTP版本、状态码、状态码的原因短语
响应首部字段
响应内容实体
5、Http协议中有那些请求方式?
GET: 用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器
POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式。
PUT: 传输文件,报文主体中包含文件内容,保存到对应URI位置。
HEAD: 获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效。
DELETE:删除文件,与PUT方法相反,删除对应URI位置的文件。
OPTIONS:查询相应URI支持的HTTP方法。
6、Http协议中Http1.0与1.1区别?
在http1.0中,当建立连接后,客户端发送一个请求,服务器端返回一个信息后就关闭连接,当浏览器下次请求的时候又要建立连接,显然这种不断建立连接的方式,会造成很多问题。
在http1.1中,引入了持续连接的概念,通过这种连接,浏览器可以建立一个连接之后,发送请求并得到返回信息,然后继续发送请求再次等到返回信息,也就是说客户端可以连续发送多个请求,而不用等待每一个响应的到来。
7、get与post请求区别?
区别一:
get重点在从服务器上获取资源。
post重点在向服务器发送数据。
区别二:
get传输数据是通过URL请求,?后以field(字段)= value的形式,置于URL后,并用&连接,多个请求数据间用&连接,如http://127.0.0.1/Test/login.action?name=admin&password=admin,这个过程用户是可见的。
post传输数据通过Http的post机制,在webform中控件中将字段与对应值封存在请求实体中发送给服务器,这个过程对用户是不可见的。
webform负责封装用于用户端显示的数据。
区别三:
Get传输的数据量小,因为受URL长度限制,但效率较高。
Post可以传输大量数据,所以上传文件时只能用Post方式。
区别四:
get是不安全的,因为URL是可见的,可能会泄露私密信息,如密码等。
post较get安全性较高。
区别五:
get方式只能支持ASCII字符,向服务器传的中文字符可能会乱码。
post支持标准字符集,可以正确传递中文字符。
9、常见Http协议状态?
1XX类状态码信息表示:临时的响应。客户端在收到常规响应之前,应准备接收一个或多个1XX响应
2XX类状态码信息表示:服务器成功的接收了客户端请求
3XX类状态码信息表示:客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同页面,或者通过代理服务器重复该请求
4XX类状态码信息表示:发生错误,客户端似乎有问题。例如:客户端请求不存在的页面,客户端为提供有效的身份验证信息 5XX类状态码信息表示:服务器遇到错误而不能完成该请求
具体举例
200:请求被正常处理
204:请求被受理但没有资源可以返回
206:客户端只是请求资源的一部分,服务器只对请求的部分资源执行GET方法,相应报文中通过Content-Range指定范围的资源。
301:永久性重定向
302:临时重定向
303:与302状态码有相似功能,只是它希望客户端在请求一个URI的时候,能通过GET方法重定向到另一个URI上
304:发送附带条件的请求时,条件不满足时返回,与重定向无关
307:临时重定向,与302类似,只是强制要求使用POST方法
400:请求报文语法有误,服务器无法识别
401:请求需要认证
403:请求的对应资源禁止被访问
404:服务器无法找到对应资源
500:服务器内部错误
503:服务器正忙
11、Http与Https区别及其优缺点?
①https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
②http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
③http 标准端口是80 ,https是443
④http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
Http(超文本传输协议)
缺点:
通信使用明文不加密,内容可能被窃听,也就是被抓包分析。 不验证通信方身份,可能遭到伪装 无法验证报文完整性,可能被篡改
HTTPS就是HTTP加上加密处理(一般是SSL安全通信线路)+认证+完整性保护
优点:
通过证书可以更信任服务器。 更安全,防篡改。
缺点:
https 需要证书。
因为对传输进行加密,会一定程度增加cpu消耗。
由于https 要还密钥和确认加密算法的需要,所以首次建立连接会慢一些。
带宽消耗会增加。
12、Http优化
利用负载均衡优化和加速HTTP应用 利用HTTP Cache来优化网站
13、Http协议有那些特征?
1、支持客户/服务器模式;2、简单快速;3、灵活;4、无连接5、无状态
14、TCP的三次握手与四次分手
3次握手
第一次握手:主机A发送位码为syn=1,随机产生seq number=x的数据包到服务器,客户端进入SYN_SEND
状态,等待服务器的确认;主机B由SYN=1知道,A要求建立联机;
第二次握手:主机B收到请求后要确认联机信息,向A发送ack number(主机A的seq+1),syn=1,ack=1,随机产生seq=y的包,此时服务器进入SYN_RECV
状态;
第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。客户端和服务器端都进入ESTABLISHED
状态,完成TCP三次握手。
TCP位码,有6种标示:
SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)
Sequence number(顺序号码) Acknowledge number(确认号码)
4次挥手
第一次挥手:主机1(可以是客户端,也可以是服务器端),设置Sequence Number
和Acknowledgment Number
,向主机2发送一个FIN
报文段;此时,主机1进入FIN_WAIT_1
状态;这表示主机1没有数据要发送给主机2了;
第二次挥手:主机2收到了主机1发送的FIN
报文段,向主机1回一个ACK
报文段,Acknowledgment Number
为Sequence Number
加1;主机1进入FIN_WAIT_2
状态;主机2告诉主机1,我也没有数据要发送了,可以进行关闭连接了;
第三次挥手:主机2向主机1发送FIN
报文段,请求关闭连接,同时主机2进入CLOSE_WAIT
状态;
第四次挥手:主机1收到主机2发送的FIN
报文段,向主机2发送ACK
报文段,然后主机1进入TIME_WAIT
状态;主机2收到主机1的ACK
报文段以后,就关闭连接;此时,主机1等待2MSL后依然没有收到回复,则证明Server端已正常关闭,那好,主机1也可以关闭连接了。