Http是超文本传输协议,是短连接,是客户端主动请求,服务器作出响应,服务器响应之后断开连接。Http是一个属于应用层的面向对象的协议。
Http有两类报文:请求报文与响应报文。
Http请求报文: 一个Http请求报文由请求行,请求头部,空行 和 数据请求4 部分组成;
Http响应报文:Http响应由三部分组成:状态行、消息报头、响应正文;
Http请求的Get方法和POST方法区分
1.请求类型
GET请求:参数在地址后面进行拼接,没有请求数据区域,不安全,不适合传输大量数据。
POST请求:参数放在请求数据区域,相对于GET请求方法更安全,并且数据大小没有限制。
GET提交,请求的数据会附在URL之后(就是将数据放置在HTTP协议头<request-line>中),以?分割URL和传输数据,多个参数之间使用&进行连接;(其中,如果数据为数字、英文字母则原样照发,如果为空格则转换为+,如果为中文或其他字符,则把字符串进行Base64加密)
POST提交:把提交的数据放置在HTTP的包体<request-body>中。
所以,GET提交的数据会在地址栏中展示出来,但是POST提交的数据不会。
2.传输数据的大小
首先声明,HTTP协议没有对传输的数据大小进行限制,HTTP协议并没有对URL的长度进行限制,但是在实际开发过程中,
GET:特定的服务器与浏览器和服务器对URL的长度有限制,(理论上没有限制,但是操作系统的支持会进行限制),所以,GET提交时,传输的数据会受到URL长度的限制;
POST:由于不是通过URL进行传值的,理论上长度不会受到限制,但是实际上,服务器会对其大小进行限制。
3.安全性
POST的安全性比GET的安全性高,通过GET提交数据,用户名和密码将会明文出现在URL上,原因:1.登录页面可能被浏览器缓存,2.如果其他人查看浏览器的历史记录那么别人就可以拿到你的账号和密码了。
补充
HTTPS:是安全超文本传输协议,是一个安全通信通道,基于HTTP开发的,用于客户计算机与服务器之间交换信息,使用安全套接字层(SSI)进行信息交换,简单说:HTTPS就HTTP的安全版;