在和师弟交流一个web开发项目时,师弟问的两个问题,还是比较重要的,记录一下
1、GET和POST的区别
对于GET和POST的使用格式可以通过IDEA来学习,这样也许更加清晰
本质上来看,GET和POST没有太大的区别,都是HTTO请求的方式之一
但是对它俩的作用做了界定和适配,来适应不同的场景
- 从使用场景来看
通常,我们使用GET方法来从服务器上获取资源,比如search(查询)方法就是使用GET来请求,POST方法一般用来更新服务器资源,比如常见的用户注册,用户删除都是使用POST方法 - 从使用格式来看
GET请求的参数一般会附在URL后面,使用?隔开,多个请求参数使用&相连,比如GET https://httpbin.org/get?show_env=1 ,所以GET方法不适用于请求参数很长的请求,POST方法通常使用json作为提交数据的请求体来作为请求报文的一部分,比如
POST 格式
POST https://httpbin.org/post
Content-Type: application/json
{
"id": 999,
"value": "content"
}
2.Session和Cookie
在web开发中,Session是比较重要的一个概念,我一般把Session理解为用户态,简单来说,就是我们登入一个网站时,如果服务器有使用Session,那么服务器会保留我们用户的数据,通常在项目中用来判断用户是否登入或者鉴权功能。
cookie与我们更为接近,通常我们在访问一个没有登入过的网站,会询问我们是否接受cookie
如果我们同意,那么网站服务器会创建一个cookie返回给我们,这样我们在请求数据不变的情况下再次请求该网站服务器的时候会带着这个Cookie,这样该网站服务器当接收我们请求时会辨识出这个Cookie,明白我们是访问过该网站的并可能存储着属于我们的数据,通常我们可以在一段时间内免登入一些登入过的网站也是因为网站服务器读取了我们的cookie,这样实现我们不用输入账号密码也能登入网站
从本质上,session是数据存放在服务器而cookie则存放在客户机上
再多说一下,session中有一个attribute属性(我们可以理解为一个map),可以通过setAttribute和getAttribute来获取用户的状态和数据等