阅读:65
目录
2.2 Content-Length、Content-Type
在HTTP协议中,最常用的放法就是GET 和 POST.
GET 和 POST 没有本质区别。
具体来说,相当于是GET没有使用场景,也能替换成POST。POST 也能替换成GET
细节上的区别:
1.语义上的区别:GET通常用来取数据,POST通常用来上传数据。也可互换
2.通常情况下,GET是没有body, GET通过query string向服务器传递数据.
POST是有body的, POST通过body向服务器传递数据.但是POST没有query string3.GET请求一般是幂等的, POST请求一般是不幂等的. (也不是 强制要求,而是建议)
4.GET可以被缓存, POST不能被缓存.提前把结果记住~~如果是幂等的,记住结果是很有用的,节省了下次访问的开销~~如果不是幂等的,就不应该去记~~
Content-Length表示 body 中的数据长度。
Content-Type表示请求的 body 中的数据格式。
这两个属性是在描述body .如果你的请求里就没有body (GET),也就不需要这两个字段了。
一般POST都是带body. 一般登录都是基于POST来实现的!!
POST和GET是都可以可以实现登录功能的,
主要使用POST的原因:
登录肯定就要给服务器传递用户名和密码,如果是GET,用户名密码习惯上就会放到URL的query string中来传递,此时浏览器的地址栏里的路径就可能变得很长。这个时候,用户体验可能就不太好,尤其是早期的很多网站,就是把密码明文提交的。如果密码就明文的出现在URL中,这样就看起来就非常不好。
表示浏览器/操作系统的属性. 形如
表示了当前的页面,是从哪个页面,跳转过来的
(Referer不是一定有的~ ~如果你是通过浏览器地址栏直接输入地址,或者直接点收藏夹,这个时候是没referer)
Referer 用于广告是很好的手段,只要用户在搜索结果中点击进去了,这个点击就会触发计费。
Cookie 的数据是服务器返回给客户端的
里面包含了一组这样的header .就是服务器完成身份认证之后,就给客户端返回了一些具体的信息。
信息就是通过Set-Cookie这样的响应报头来表示的。
Cookie是浏览器提供的一个持久化存储数据的机制.
举个登录的例子,如下所示
Cookie的最重要的应用场景,就是存储会话id, 进-步的让访问服务器的后续页面的时候,能够带上这个id从而让服务器能够知道当前的用户信息~~ (服务器上保存用户信息这样的机制就称为Session会话)。
这个过程就像在学校的饭卡一样:
1.到了学校,会得到一张吃饭时消费的卡,里面存着个人的学号、姓名等信息。
2.去到食堂吃饭时,刷卡系统就可以设备个人信息,并调用里面的余额来进行消费。
在上述过程中,我的饭卡就是Cookoie。虽然饭卡上面存储了一些信息,但是保存的数据是有限的,真正保存我的这些信息,并不是这张卡,而是学校的食堂系统服务器上面,卡里只需保存我的身份标识学号即可。