java学习(十六)
1、cookie是怎样被设置到浏览器的。
HTTP响应首部字段。
2、浏览器登录后自动跳转有哪些实现方式
- 使用meta标签:
<meta http-equiv="refresh" content="1;url=http://www.gxblk.com">
- 使用header函数:
比如登录页面,通过判断用户提交的数据是 否合法来决定页面跳转到何处。
eg:header("Location:index.php");
- 使用JavaScript:
eg: window.location.href("http://www.gxblk.com");
3、1-9填到九宫格横竖对角线想加都相等,说思路。
设第一行 的和为X;第二行的和为X;第三行的和为X。
3X=1+2+3+..+9=45你等于是把这九个数都加了一遍。
可知:X=15.
先设置九宫格分别填入的数是:A、B、C、D、E、F、G、H、I 九个数取值范围[1,9],如图:
A B C
D E F
G H I
那么,横竖斜等于15,转化成数学表达式就是:
A+B+C=15、D+E+F=15、G+H+I=15、A+D+G=15、B+E+H=15、C+F+I=15、A+E+I=15、C+E+G=15 ………………………............................(算式组①)
将算式组①中的等式左右分别相加,合并同类项,提取公因式之后:
3(A+C+G+I)+2(B+D+H+F)+4E=120
设:A+C+G+I=X 、 B+D+H+F=Y
其中:X=A+C+G+I=(A+I)+(C+G)=15-E+15-E=30-2E
同理:Y=B+D+H+F=30-2E
即:3(30-2E)+2(30-2E)+4E=120
所以:E=5
再确定最中心的数是5。
与最大的数9相加等于15的数有2组:【1,5】和【2,4】,所以最大的数9只能在边格。
同理,与最小的数1相加等于15的也有2组:【5,9】和【6,8】,最小的数1也只能在边格。
遵上两点,1、5、9必定在中间一行(或列)上,2、4填在与9相邻的两个角格。
每行、每列和两条对角线知道和值和两个数,依次求出第三个数即可。
即:
6 1 8
7 5 3
2 9 4
4、HTTP1.0,HTTP1.1和HTTP2.0协议的区别:
HTTP1.0:HTTP1.0是一种无状态、无连接的协议。浏览器的每次请求都需要与服务器建立一个TCP连接,服务器处理完后立即断开TCP连接(无连接),服务器不跟踪每个客户端也不记录过去的请求(无状态)。也就是默认使用Connection: close
HTTP1.1:HTTP1.1默认使用Connection:keep-alive,避免了连接建立和释放的开销。但服务器必须按照客户端请求的先后顺序依次回送相应的结果,要保证客户端能够区分出每次请求的相应内容。通过Content-Length字段来判断当前请求的数据是否已经全部回收。不允许同时存在两个并行的响应。
HTTP2.0:HTTP2.0协议新增了二进制分帧,多路复用,头部压缩和服务器推送功能,进一步提高了传输效率。
5、HTTP协议的状态码
200(成功)
404(未找到):服务器找不到请求的网页。
500(服务器内部错误):有bug导致程序嗝屁了。
401(未授权):请求要求身份验证。
403(禁止):服务器拒绝请求(比如死循环了,一直访问)
302(重定向):请求重定向到指定网页;
502(错误网关):服务器从上游接收到了无效响应;
504(网关超时):ngnix请求超时,请求一直没有返回。
6、HTTP请求中的Get和Post方法的区别
Get方法一般是用来从服务器上查询获取资源,Post方法一般是用来更新服务器上的资源;
Get方法直接将参数拼接到了url后边,明文显示,可以通过浏览器地址栏直接访问;
Post方法用于表单提交,数据不是明文的,安全性更高;
Get请求有长度限制,Post请求则没有。
根据相关面试及学习进行归纳总结