发表于: 2020-06-09 21:23:39

1 1564


今天完成的事情:今天在看任务三的需求,以及做深度思考
明天计划的事情:继续做深度思考,准备任务三的接口文档
遇到的问题:暂无
收获:

4.“内网IP+端口”和“外网IP+端口”和"域名"三种方式的差别是什么?什么时候用内网?什么时候用外网IP,什么时候用域名访问?

外网:即公网,广域网,是世界上所有的服务器和网络终端组成。

私网:即私网,局域网,是小范围内的计算机和终端,手机等设备的互联。内网和外网之间是相互隔离的。

ip:就是各个终端的地址,通信的纽带. 端口:就是标识终端上安装的各种程序服务。

外网ip:  连入公网上的每台电脑(或其它网络设备)都有1个或多个公网IP,公网IP一般要到网络运营商交钱购买或专门申请才能获取。

外网ip独一无二,世界上不会有两个相同的。

内网ip:连入内网的每台电脑(或其它网络设备)都有1个或多个内网IP,内网IP一般由路由器、网关等设备自动分配,也可以进入路由器、网关等设备手动设置。

平时手机上网都是没有自己的公网ip,是和别人共用的运营商提供的公网ip,自己没有公网ip,内网和公网不相通,是怎样实现互联通信的喃,用到NAT技术。NAT可以将内网IP转换成公网IP发送和接收数据,通俗来讲,NAT就像小区收发室的大爷,虽然小区内所有的住户都不能直接与外界收发邮件,但可以统一将邮件交给有收发资格的大爷,大爷以他的名字代为发送和接收,NAT有一个特性,只有先从内网发送请求才能接收对应公网中的响应。

域名:由于IP地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过网域名称系统(DNS,Domain Name System)来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。

综上,就是在局域网用内网,要访问公网上的资源,以及提供自己的一些服务到公网,需要外网ip,域名方便记忆。

https://wangejiba.com/4379.html

5.内网IP和外网IP的区别是什么,在服务器上测试接口是否被防火墙屏蔽的时候,该用内网IP检测,还是该用外网IP检测?  

1)一个终端可以有多个内网IP和外网IP.

2) 内网的ip大多通过路由器或者局域网分配,外网ip由运营商分配,外网IP是全世界唯一的IP地址,仅分配给一个网络设备

3) 内网IP是由路由器分配给每一部内部使用的IP地址,而内网的所有用户都是通过同一个外网IP地址进行上网的,而内网的IP地址每个人的都不一样,Internet上的用户也无法直接访问到内网用户

在服务器上测试接口,首先放行端口号,并且用公网连接。

6.在Linux服务器上,有哪些工具是可以测试接口的,怎么用Wget或者是Curl分别发送Rest的四种请求? 

工具如上:Curl,ApiPost,Wget

CURL使用

curl安装: yum install curl

curl发送Get请求:

curl URL

curl URL -O 文件绝对路径
 

curl发送post请求:

 curl -d "user=nickwolfe&password=12345" http://www.linuxidc.com/login.cgi

请求主体用json格式:
curl -X POST -H 'content-type: application/json' -d @json文件绝对路径 URL
curl -X POST -H 'content-type: application/json' -d 'json内容' URL
 
请求主体用xml格式
curl -X POST -H 'content-type: application/xml' -d @xml文件绝对路径 URL
curl -X POST -H 'content-type: application/xml' -d 'json内容' URL
 
设置cookies:
curl URL --cookie "cookie内容"
curl URL --cookie-jar cookie文件绝对路径
只打印http头部信息:
curl -I URL
curl -head URL
 
末尾参数:
--progress  显示进度条
--silent 不现实进度条

参数说明:

-X/--request [GET|POST|PUT|DELETE|…] 使用指定的http method發出 http request
-H/--header 設定request裡的header
-i/--include 顯示response的header
-d/--data 設定 http parameters
-v/--verbose 輸出比較多的訊息
-u/--user 使用者帳號、密碼
-b/--cookie cookie

https://www.cnblogs.com/zgq123456/p/10774889.html

https://blog.csdn.net/russ44/article/details/53308838

7.PostMan是什么,为什么要使用他来测试接口,除了Postman,还有哪些工具可以测试?  

测试工具:postman、RESTClient、jmeter、loadrunner、SoapUI等

PostMan

Postman是谷歌的一款接口测试插件,它使用简单,支持用例管理,支持get、post、文件上传、响应验证、变量管理、环境参数管理等功能,可以批量运行,并支持用例导出、导入。

jmeter是一款100%纯Java编写的免费开源的工具,它主要用来做性能测试,相比loadrunner来说,它内存占用小,免费开源,轻巧方便、无需安装,越来越被大众所喜爱。

https://cloud.tencent.com/developer/article/1552212

8.该怎么模拟假数据,为什么在真实项目中,我们通常都是先定义接口,再写假数据,再去写业务逻辑?  

前后端分离,同时开发时候,需要假数据给前台用,这也是为什么需要先定义接口,再写假数据原因。假数据是JSON类型的。JSON是JS对象对象表示法,它使用javascript语法来描述数据对象。

怎么实现:我是直接在service里生成数据,返回到前台。看到小课堂写的是,用RAP。RAP自身就支持自动生成假数据,只要我们使用RAP编写接口文档,RAP就会帮我们生成假数据。在RAP中我们还可以使用@mock指定生成的假数据的格式,这些内容再RAP官方用户手册写的很清楚,RAP还有官方演示视频,

RAP提供了一个插件,前端在代码中引入这个插件就可以使用假数据了。

我们后端用RAP写好的接口文档后,点击页面右上角“配置”按钮,会有一行代码,这行代码就是上面提到的RAP插件。这个插件映射的就是我们刚刚写接口文档。把这行代码交给前端,前端在HTML中需要先引入JQ,紧跟着再引入RAP插件,就可以使用假数据了。

9.Service返回的结果是否要打日志,应该打什么样的日志,为什么? 

肯定需要打日志的,这里我看到有些师兄要用到Spring AOP,AspectJ.这里我会明天代码实现。

10.对Service返回的结果是否要判空,为什么?

  需要判断,因为如果A方法调用B方法,B方法返回一个null值 假设A方法没有进行检查直接传递给了调用它的C方法,C方法也没有检查直接装进model里返回给视图层了,视图层从model中 拿数据也没检查直接就调用属性造成该视图创建失败.

11.在Controller里应该怎么处理Service的异常,大段的Try Catch 会有什么坏处?

大段的Try Catch坏处
1.try catch的代价比较大。相对于判断返回值,抛出异常到捕获,需要更多的代码,程序不易阅读
2.Java的异常机制是由JVM控制的,业务逻辑复杂的情况下,会影响controller的执行效率
解决方法:
1.用错误码控制业务流程,需要对每个接口的返回都要做一个错误码的校验

2.自定义异常处理类,使用springMVC提供的统一的异常处理方式

12.怎么查看Nginx的访问请求时间,多少的响应时间是合理的,并发1000和单线程访问的差别是什么,Nginx可以支持多少并发,Tomcat可以支持多少并发,为什么要在Tomcat之前配置一个Nginx? 

访问请求时间:修改conf/nginx.conf文件,去掉前面的注释并添加。

响应:响应时间越少越好,一般都是几毫秒到二三十毫秒内差不多都是合理的。

并发1000与单线程:1000个并发就是1000个请求同时访问,也有可能是1000个线程同时访问,差别应该就是1和1000的差别了,如果服务器不支持肯多就是卡死或者宕机了。

Nginx并发:不做性能优化的情况下,Nginx 并发量可以达到 1000。在硬件条件允许的情况下,并发 量可以达到 3-5w。 

Tomcat: tomcat默认是150,能承载多少并发,需要看硬件的配置,CPU 越多性能越高,分配给 JVM 的内存越多性能也就越高。

Nginx+Tomcat: Nginx做负载均衡,但是高并发下,性能会降低,使用Tomcat来搭建集群。

13.域名和端口号是怎么对应起来的?应该通过域名访问吗,从域名服务商到服务器的流程是怎么样的?  

注册域名后,DNS域名系统会更新域名到IP地址的对应关系。ip地址到域名查询有两种方式,迭代查询和递归查询。

1、在浏览器中输入www.qq.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。 

2、如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。 

3、如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/ip参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。 

4、如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。 

5、如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www.qq.com主机。 

6、如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机

从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间就是的交互查询就是迭代查询。



返回列表 返回列表
评论

    分享到