Java每日一面(Part1:计算机网络)[19/11/25]
个人微信公众号:程序猿的月光宝盒
1. HTTP相关[2]
1.1Get请求和Post请求的区别
从三个层面来回答:
1.1.1 从HTTP报文层面:
Get请求将请求信息放在URL后面,请求信息和URL之间用问号(?)隔开,多个请求信息之间用&隔开,形式是键值对的形式,且有长度限制.
Post请求是放在报文体中,想获得请求信息必须请求报文,因此,安全性较Get要高一些,但是可以通过抓包工具获取信息,所以不是绝对安全,具体还要靠https,没有长度限制
1.1.2 从数据库层面:
Get符合幂等性和安全性,Post不符合
幂等性:
对数据库的一次操作和多次操作获得的结果是一致的
安全性:
对数据库的操作没有改变数据库中的数据
1.1.3 从其他层面上看
Get可以被缓存,被存储,会被保存在浏览器的浏览记录中,以Get方式发送的URL可以保存为浏览器书签,而post不行
1.2 Cookie和Session的区别:
两者产生的原因:HTTP的最大特点:无状态,每次登陆某网站都要不厌其烦输入帐号密码,对此,就产生的Cookie和Session.
1.2.1 Cookie简介:
是由服务器发送给客户端的特殊信息,以文本的形式存放在客户端
客户端再次请求的时候,会把Cookie回发
服务器接收到后,会解析Cookie生成 与客户端相对应的内容
1.2.1.1 Cookie的设置和发送过程
客户端发送http请求到服务端,
服务端发送http响应到客户端,其中包括了Set-Cookie头部
客户端发送http请求到服务端,包括了Cookie头部
服务器发送http相应到客户端
1.2.2 Session简介
服务端的机制,在服务端上保存信息
解析客户端请求并操作Session id,按需保存状态信息
1.2.2.1 Session的实现方式
1.使用Cookie实现
服务器给每个Session分配一个唯一的JSessionID,并通过Cookie发送给客户端,当客户端发送新的请求的时候,将在Cookie头中携带JSessionID,这样服务器就能找到相对应的Session
2.使用URL回写实现
指服务器在发送给浏览器的所有页面中都携带JSessionID的参数,这样客户端点击任何一个连接都会把JSessionID的值传给服务端
1.2.3 Cookie和Session的区别
1.Cookie数据存放在浏览器,Session存放在服务器
2.Session相对Cookie安全
3.若考虑服务器负担,应当使用Cookie
1.3 HTTP和HTTPS的区别
1.3.1 HTTPS简介
是一个以安全通行为目的的传输协议,是一个安全版的Http
1.3.2 SSL(Security Sockets Layer,安全套接层)
1.为网络通信提供安全及数据完整性的一种安全协议
2.是操作系统对外提供的API,SSL3.0后改名为TLS
那么它如何保护安全及数据完整性?
采用
身份验证和数据加密保证网络通信的安全和数据的完整性1.3.3加密方式
1.对称加密:
加密和解密都使用同一个秘钥,性能较高,安全性相对不强
2.非对称加密:
加密和解密使用的秘钥都是不同的,分别称为公钥和私钥,性能较低,安全性超强
3.哈希算法:
将任意长度的信息转换为固定长度的值,算法不可逆(常见的MD5算法)
4.数字签名:
证明某个消息或者文件是从某人发出/认同的
1.3.4Https数据传输流程
1.浏览器将支持的加密算法信息发送给服务器
2.服务器选择一套浏览器支持的加密算法,以证书的形式回发给浏览器
3.浏览器验证证书的合法性,并结合证书公钥加密信息发送给服务器
4.服务器使用私钥解密信息,验证哈希,加密响应信息回发浏览器
5.浏览器解密响应信息,并对信息进行验证,之后进行加密交互数据
1.3.5 HTTP和HTTPS的区别
1.HTTPS需要到CA申请证书,HTTP不需要
2.HTTPS密文传输,HTTP明文传输
3.连接方式不同,HTTPS默认使用443端口,http使用80端口
4.HTTPS=HTTP+加密+认证+完整性保护,较HTTP安全
1.3.6HTTPS真的安全吗
未必
1.浏览器默认填充http://,请求需要进行跳转,有被劫持的风险
2.可以使用HSTS(HTTP Strict Transport Security)优化
以上,计算机网络部分结束
Java每日一面(Part1:计算机网络)[19/11/25]的更多相关文章
- Java每日一面(Part1:计算机网络)[19/11/13]
作者:晨钟暮鼓c个人微信公众号:程序猿的月光宝盒 1. HTTP相关[1] 1.1 HTTP简介 HTTP协议,即超文本传输协议,属于应用层的协议,他是基于请求和响应模式的无状态的 应用层协议. ...
- Java每日一面(Part1:计算机网络)[19/11/02]
作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 1.TCP的滑动窗口 1.1 RTT和RTO的区别 RTT:发送一个数据包到收到对应的ACK,所花费的时间 RTO:重传时间间隔,TCP在发 ...
- Java每日一面(Part1:计算机网络)[19/10/21]
作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 1.UDP简介 1.1UDP报文结构: Source Port:源端口 Destination Port:目标端口 Length:数据包长度 C ...
- Java每日一面(Part1:计算机网络)[19/10/14]
作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 1.1 说一说TCP的四次挥手 "挥手",即终止TCP连接,断开一个TCP连接池. 需要客户端和服务端总共发出四个包,以 ...
- Java每日一面(Part1:计算机网络)[19/10/13]
作者:晨钟暮鼓c个人微信公众号:程序猿的月光宝盒 1.说说TCP三次握手 1.0 在此之前,什么是TCP? TCP(传输控制协议) 1.面向连接的,可靠的,基于字节流的传输层通信协议 2. ...
- Java每日一面(Part2数据库)[19/11/28]
作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 1.如何设计一个关系型数据库 如上图,首先划分成两大部分: 1.存储部分:类似一个文件系统,把数据存储到一个持久化设备中,如机械硬盘,固态等 ...
- 【Java每日一题】20161018
20161017问题解析请点击今日问题下方的"[Java每日一题]20161018"查看 package Oct2016; public class Ques1018 { publ ...
- Java Web学习总结(19)——web.xml配置详解
1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Servl ...
- 【Java每日一题】20170106
20170105问题解析请点击今日问题下方的"[Java每日一题]20170106"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...
随机推荐
- ESP8266开发之旅 基础篇⑥ Ticker——ESP8266定时库
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- spring cloud 网关服务
微服务 网关服务 网关服务是微服务体系里面重要的一环. 微服务体系内,各个服务之间都会有通用的功能比如说:鉴权.安全.监控.日志.服务调度转发.这些都是可以单独抽象出来做一个服务来处理.所以微服务网关 ...
- 4. SOFAJRaft源码分析— RheaKV初始化做了什么?
前言 由于RheaKV要讲起来篇幅比较长,所以这里分成几个章节来讲,这一章讲一讲RheaKV初始化做了什么? 我们先来给个例子,我们从例子来讲: public static void main(fin ...
- sqlite复制表
(1)复制表,并把原表的 所有记录都复制到新表里. CREATE TABLE newTb AS SELECT * FROM oldTb (2)只复制表结构,不复制数据到新表里. 注:该语句无法复制关键 ...
- JVM三部曲之运行时数据区 (第一部)
在接下来的几天想总结下,JVM相关的一些内容,比如下面的这三个内容算是比较核心知识点了 1.运行时数据区域: 在运行时数据区里存储类Class文件元数据(方法区),对象和数组(堆),方法参数局部变量( ...
- Android自定义控件:图形报表的实现(折线图、曲线图、动态曲线图)(View与SurfaceView分别实现图表控件)
图形报表很常用,因为展示数据比较直观,常见的形式有很多,如:折线图.柱形图.饼图.雷达图.股票图.还有一些3D效果的图表等. Android中也有不少第三方图表库,但是很难兼容各种各样的需求. 如果第 ...
- 工厂模式(C++)
转载来源:https://www.runoob.com/design-pattern/ 工厂模式 创建型模式,它提供了一种创建对象的最佳方式. 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑, ...
- HTML5部分基础知识
web前端开发 一个XML的简单应用 代码如下: <?xml version="1.0" encoding="utf-8"?> <svg wi ...
- python设置环境变量(临时和永久)
设置临时环境变量 import os # 设置环境变量 os.environ['WORKON_HOME']="value" # 获取环境变量方法1 os.environ.get(' ...
- 7.30 NOIP模拟10
T1.辣鸡 考试的时候竟然被我以“麻烦”弃掉了,赛后发现这题好水啊,直接sort一下寻找四周即可. T2.模板 考试时期望得分70,实际得分5 首先看到这种题基本就是线段树,我们以时间为下标,对每一个 ...