定义:html
Http协议(HyperTextTransferProtoco):超文本传输协议(无状态协议),http协议是一个基于浏览器和服务器(B/S)请求和应答的应用层协议,http构建在TCP之上。web
http的无状态是指服务器在处理完事务以后不会记录以前的记录,每一次的请求都须要创建一次链接。解决这种办法可使用cookie或session记录信息。服务器默认的端口是80端口json
基本http协议的流程:(一次http操做称为一个事务)跨域
一、客户机与服务器创建链接(每一个请求都要创建一个链接)浏览器
点击某个http超连接缓存
二、发送请求信息安全
请求报文包括三部分:服务器
1)请求行(request-line):cookie
如:get/http://www.baidu.com/s?username=a&pwd=b HTTP/1.1session
2)请求头部(headers 由键值对组成):
3)请求数据(request-body):header和body之间有空格
三、发送响应信息
响应报文包括三部分:
1)状态行(status-line):
如:http/1.1 200 OK
2)响应头部(headers):
响应的头部如:
3)响应数据(response-body):
返回响应后的数据,与header中间有一行空格
四、关闭链接
客户端接收服务器返回的信息,经过浏览器显示在屏幕上(若是整个传输的过程当中某个步骤出现了错误,产生的错误会自动发送到客户端),关闭链接
http和https的区别
请求方法:get和POST的不一样
在客户端和服务器之间进行请求响应时,最经常使用到的就是POST和get。
“增删改查”----put、delete、post、get
POST:向指定资源提交要申请的数据
get:从指定的资源请求数据
通常在浏览器中输入一个网址访问网站用的是get请求,而使用表单提交的时候能够设置method方法为get或POST,默认使用get,推荐使用post。
get不会修改信息,不会再服务器上产生任何结果。而POST可能会修改服务器上的信息。
形式上,get请求:请求的数据会附在URL的后面,用“?”来分隔URL和数据,用“&”链接数据中间不能有空格。POST请求:请求的数据放在body中,也是用“&”链接
传输数据的大小,在实际的http规范中,没有对URL作限定,可是有的浏览器会对URL作限定,因此使用get请求时,请求的数据会受到URL的影响。而POST不会受到影响。
安全性,POST的安全性比get高,get请求的数据在URL中,因此能够看到不安全,POST看不见请求的数据
编码类型,get只支持ASCII字符,POST均可以
session和cookie
会话(session)是跟踪web程序经常使用的技术,用来跟踪用户的整个会话过程。经常使用的会话跟踪技术是cookie和session。cookie是在客户端肯定用户身份(保存在客户端浏览器中),而session是在服务器端肯定用户身份(保存在服务器中)。
cookie:
cookie是用来解决http协议无状态(每一次请求都要从新创建一次链接)的不足,原理就是客户端向服务器发出了请求,这时服务器想要记录用户状态信息,就会在response设置cookie,,当浏览器下次发出请求的时候,在request时就会带上cookie。服务器经过检查从cookie就能够确认用户状态了。
cookie须要浏览器的支持,若是浏览器不支持或者用户在浏览器中设置了禁用cookie,就不能使用cookie了
cookie具备不可跨域名性,也不能够跨子域名
cookie不支持修改和删除操做,若想要修改cookie只须要从新设置cookie来覆盖原来的信息便可。cookie有有效期,在有效期事后就会自动删除
由于http协议是不安全的,因此在使用cookie的时候可使用secure设置为true,意味着只有当浏览器是HTTPS的时候才可使用cookie
session:
session保存在服务器的内存中,这样能够获取高效的存取速度,session保存用户第一次登录时的记录,随后在用户每一次的访问中更新最后访问的信息,这样为防止内存溢出,就将长时间没有活跃的cookie删除掉。
session须要使用cookie做为标志,也能够将session的id写入URL中
cookie 和session 的区别:
一、cookie数据存放在客户的浏览器上,session数据放在服务器上。
二、cookie不是很安全,别人能够分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。
三、session会在必定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。
四、单个cookie保存的数据不能超过4K,不少浏览器都限制一个站点最多保存20个cookie。
五、因此我的建议: 将登录信息等重要信息存放为SESSION 其余信息若是须要保留,能够放在COOKIE中