1.HTTP GET/POST 区别
常见的 HTTP 方法:GET / POST / PUT / DELETE
GET 经常用来获取操作,POST 用来做创建操作、PUT更新、DELETE 删除
HTTP GET VS POST
Restful 语义上一个是获取,一个是创建
GET 是幂等的,就是对服务器没有副作用;POST 非幂等,就是每一次创建一个新的东西会影响数据库的数据。
GET请求参数放到url(明文),长度限制;POST放在请求体,更安全。
(1)web开发中 Post 和 Get 有哪些区别,各适合用于什么情况 ?
Get 请求参数在链接铭明文显示。Post 请求参数放在Http报文实体的主体中,保密性更好。
一般向服务器请求数据资源用Get;向服务器发送处理数据用Post。
(2)http协议中get、post的区别详解?
① 功能差异:
get :获取数据,客户端去服务器端取数据。(get向服务器端获取取数据)
post:提交数据,从客户端向服务器上传数据。(post向服务器端提交数据)
② 数据传输:
get:通过URL里面加上参数去把数据传输给服务器端,然后服务器端根据发送过来参数返回对应内容。( get把数据放到URL部分)
post:URL唯一标识,通过唯一标识向唯一标识路径下提交一些数据,数据在Body部分放着不在URL里面,Post把所有数据放到Body里面提交给服务器,服务器会把Body(消息主题)里面的数据存储到服务器端数据库。(post把数据放到Body部分)
③ 安全性:
post相对于get更安全。
浏览器的地址栏会显示出来当前URL,get会把所有的数据放到url部分,数据会以明文显示对于用户来说是可见的,并且浏览器会有历史记录的功能。
post会把所有的数据放到Body部分,这一部分是浏览器无法记录,地址栏也是无法直接发送一个post请求,post请求一般在页面里面通过form表单或者Ajax等方式发送一个请求给服务器端。post把所有数据放到Body部分对于用户来说是不可见的,相对于get有一定安全性。
无论是get还是post如果传输的数据未经过加密,通过第三方抓包工具依然是可以把数据抓取到的,一旦抓取到数据还是可以看到传输的数据内容都包含哪些。为了保证传输的内容安全,一般对关键信息或者敏感信息都会采用这种加密的形式。
2.什么是幂等性
什么是幂等?哪些 HTTP 方法是幂等的
幂等方法是无论调用多少次都得到相同结果的 HTTP 方法
例如:a = 4 是幂等的,但是 a += 4 就是非幂等的
幂等的方法客户端可以安全地重新请求,因为不会对服务器上的数据造成什么影响。
幂等是指多次请求结果和请求一次结果一样;安全指的是是否会修改数据。
2.cookie 和 session 区别
HTTP是无状态的,每次发送HTTP实际和之前的HTTP请求都没有什么关系,如何识别用户呢?
需要在服务端给用户生成一个标识,然后每次让客户端带过去给后端,识别用户会话。用户会话就是用户识别的一种方式。
Session 一般是服务器生成之后给客户端 (通过 url参数或cookie)
Cookie 是实现 session 的一种机制,通过 HTTP cookie 字段实现
Session 通过在服务器保存 sessionid 识别用户,cookie存储在客户端。
(1)Cookie 和 Session有哪些区别和联系
① Cookie存储在客户端,Session存储在服务器。
② Cookie 减轻服务器存储压力,一般存储安全性要求不高的数据。Session 存储安全性较高的数据。
③ 在客户端的Cookie 中存储session id,以此来标记服务器的哪个session 文件是当前用户的。(session 文件:session 存储介质视服务器而定)