1.OSI七层协议是哪些
7.应用层(HTTP,FTP等)
6.表示层
5.会话层
4.传输层(TCP,UDP协议等)
3.网络层(IP协议等)
2.数据链路层(ARP协议等)
1.物理层
2.OSI五层协议是哪些
5.应用层
4.传输层
3.网络层
2.数据链路层
1.物理层
3.TCP和UDP的区别
1.TCP是面向连接的,而UDP是无连接的
2.TCP提供可靠的服务,发送的数据无差错、不丢失、按序、不重复到达,UDP尽最大努力交付,即不保证可靠交付
3.TCP是点到点连接,UDP是可以一对一、一对多、多对一、多对多连接。
4.TCP面向字节流,UDP面向报文。
5.UDP比较适合即时通讯,如实时视频会议等,TCP比较适合需要保证可靠交付的应用,如无人机操纵等。
4.拥塞控制与流量控制
拥塞控制针对的是网络,它防止过多数据注入网络,导致网络拥塞。
流量控制是针对于接收者的,它防止发送者发送太快而接收者接收不到,从而控制发送者的发送速度来保证接收者都可以接收到
5.http请求方法post和get的区别
1.get可以收藏为书签,post不可以。
2.get点击后退按钮无害,而post点击后退按钮会刷新表单(会提示)
3.get可以被缓存,post不可以
4.post参数保存在浏览器历史中,post参数不会保留在浏览器历史中
5.get对数据类型的限制为ascll码,post无限制
6.get数据在URL中,相比post来说不安全,post的数据放在http包的body中,而如果想要更安全的话需要https加密来实现
7.get的URL长度有限制,2048个字符,而post没有限制
6.http请求的8个方法
1.post
2.get
3.head,经常用来测试超链接的有效性,可用性和最近修改(只返回请求头(Request-URI资源信息)不返回请求体)
4.put
5.delete
6.trace
7.connect
8.options
7.http状态码
- 1xx,指示信息,请求已经接受,继续处理
- 2xx,成功,表示请求已经成功接受、理解。
- 3xx,重定向,要完成请求必须进行进一步操作
- 4xx,客户端错误
- 5xx,服务器端错误
常见状态码及其含义
- 200,成功,请求已经成功被接受和理解。
- 303,重定向
- 400,Bad Request,客户端请求有语法错误,不能被服务器端理解
- 401,Unauthorized,请求未经授权
- 403,Forbidden,服务器收到请求,但是拒绝提供服务,一般是权限问题
- 404,Not Found 请求资源不存在,URL有误
- 500,Internel Server error,服务器端出现错误(一般是源代码出现错误,如死循环等)
- 502,Bad Gateway,作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。比如LNMP ,php-fpm没有启动就会报502错误。
- 503,Server Unavailable,服务器当前不能处理客户端的请求,一段时间后可能恢复正常,比如java 容器部署war的时候,就出现503,或者是nginx处理的文件没有权限。(服务器暂不可用)
- 504,Gateway Time-out:作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI标识出的服务器,例如HTTP、FTP、LDAP)或者辅助服务器(例如DNS)收到响应,比如nginx和php-fpm, php设置sleep(200),就会收到504 Gateway Time-out。注意:某些代理服务器在DNS查询超时时会返回400或者500错误
8.https通信过程
https通信过程过程为:
1.客户端向服务器端发送https请求
2.服务器端返回一个证书(也叫公钥)给客户端,证书包含认证信息等信息
3.客户端查看该证书,如果该证书值得信任,那么客户端生成一个随机值key,并且用公钥来给这个随机值加密,然后把加密后的信息传送给服务器端,如果不值得信任,则会提示证书有问题。
4.服务器端通过私钥来解密刚才通过公钥加密的随机值key,得到这个key值后,再使用这个key来加密要传递的信息内容,再把加密好的信息传递给客户端,客户端就可以使用自己刚才生成的key来解密这个信息,得到最终想要的信息。