1.HCE框架封装通讯协议:
客户端:
1.http请求组装:terminalNo=96518368&apiName=CloudBankBindApply&bankCardNo=6217518880004042291......
2.returnStr--->base64解码--->byte[]--->根据对应编码--->str2--->ZipUtil.uncompress--->aOK
aOK_:{"apiName":"CloudBankBindApply","respCode":"0099","respMsg":"\\u4ee3\\u7406\\u5546\\u4fe1\\u606f\\u5f02\\u5e38","responseDetail":null}
服务端:HttpServletRequest request接收客户端请求
resp = Base64.encodeBase64String(ZipUtil.compress(resp).getBytes("ISO-8859-1"))
2.postman中有 form-data、x-www-form-urlencoded、raw、binary四种常见的 POST 提交数据方式
3.form-data和raw的区别:
mutipart/form-data是网页表单用来传输数据的默认格式。可以模拟填写表单,并且提交表单。
可以上传一个文件作为key的value提交(如上传文件)。但该文件不会作为历史保存,只能在每次需要发送请求的时候,重新添加文件
form-data 是键值对, 你只能通过postman提供的表单填写,
如果你的数据的某个键里面还有嵌套的对象,例如嵌套的好几层对象 那么就没有办法使用form-data 提交了, 只能使用raw 自己填写json字符串
4.有关Content-Type属性值举例如下两种编码类型:
(1)“application/x-www-form-urlencoded”: 表单数据向服务器提交时所采用的编码类型,默认的缺省值就是“application/x-www-form-urlencoded”。 然而,在向服务器发送大量的文本、包含非ASCII字符的文本或二进制数据时这种编码方式效率很低。
(2)“multipart/form-data”: 在文件上传时,所使用的编码类型应当是“multipart/form-data”,它既可以发送文本数据,也支持二进制数据上载。
当提交为表单数据时,可以使用“application/x-www-form-urlencoded”;当提交的是文件时,就需要使用“multipart/form-data”编码类型。
在Content-Type属性当中还是指定提交内容的charset字符编码。一般不进行设置,它只是告诉web服务器post提交的数据采用的何种字符编码。
一般在开发过程,是由前端工程与后端UI工程师商量好使用什么字符编码格式来post提交的,然后后端工程师按照固定的字符编码来解析提交的数据。所以这里设置的charset没有多大作用
5.采用form-data方式时hearders要为空,后台控制层可采用注解@RequestParam来接收对应参数 @RequestBody该注解常用来处理Content-Type: 不是application/x-www-form-urlencoded编码的内容,例如application/json, application/xml等;前端规定的是raw方式,那么就需要使用@RequestBody接收参数,注意这里Headers里需要以application/json作为Content-type
6.http://mail.163.com/index.html
1)http://:这个是协议,也就是HTTP超文本传输协议,也就是网页在网上传输的协议。
2)mail:这个是服务器名,代表着是一个邮箱服务器,所以是mail.
3)163.com:这个是域名,是用来定位网站的独一无二的名字。
4)mail.163.com:这个是网站名,由服务器名+域名组成。
5)/:这个是根目录,也就是说,通过网站名找到服务器,然后在服务器存放网页的根目录
6:)index.html:这个是根目录下的默认网页(当然,163的默认网页是不是这个不知道,只 是大部分的默认网页,都是index.html)
7)http://mail.163.com/index.html:这个叫做URL,统一资源定位符,全球性地址,用于定 位网上的资源
7.一台主机可以绑定多个域名
8.a计算机软件要通过端口来与外界进行数据交换,端口是必经之地。没有端口,你电脑上所有在线软件都不能使用。
b.每个端口的用处没有规定或指定只限制某些软件使用。所以,某些软件会选择对电脑处理器相应近的、容易控制的端口来服务于终端者。每个电脑/服务器 都有很多不同的端口,于是,端口就有了各自的编号(端口号,也就是"门牌号"。)。
所以,设置了域名访问直接搜 www.myphp.com 的时侯,只能识别给定的计算机/服务器的位置,并没有指定经过那个门(端口)进入(连接)它。结果还是"有路无门", 无法连接
c.访问 www.baidu.com 是不要加端口的 实际上浏览器已经默认加上了80端口,而你的配置中指定的是90端口,如果这个90端口下没有其他域名配置,你直接使用ip + 90端口也是可以访问的
d.用默认端口就不用使用域名加端口的访问形式了,直接使用域名就行了,默认http:80,https:443
9.四层和七层负载均衡的区别 四层:TCP的连接建立,即三次握手是客户端和服务器直接建立的,负载均衡设备只是起到一个类似路由器的转发动作。在某些部署情况下,为保证服务器回包可以正确返回给负载均衡设备,在转发报文的同时可能还会对报文原来的源地址进行修改 七层:主要通过报文中的真正有意义的应用层内容,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器,类似于一个代理服务器。负载均衡和前端的客户端以及后端的服务器会分别建立TCP连接
10.反向代理负载均衡(nginx),有调度算法