接口基础第二篇:HTTP协议
HTTP概述
1.什么是HTTP?
超文本传输协议(HTTP)是用于传输诸如HTML的超媒体文档的应用层协议,是在 Web 上进行数据交换的基础,是一种 client-server 协议。
-
HTTP协议构建于 TCP/IP 协议之上,是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。
-
HTTP是属于应用层的协议,它被设计用于Web浏览器和Web服务器之间的通信,也可以用于其他目的。
-
HTTP遵循经典的客户端-服务端模型,客户端打开一个连接以发出请求,然后等待它收到服务器端响应。
-
HTTP是无状态协议,意味着服务器不会在两个请求之间保留任何数据(状态)。虽然通常基于TCP / IP层,但可以在任何可靠的传输层上使用; 也就是说,一个不会静默丢失消息的协议,如UDP。请求通常是由像浏览器这样的接受方发起的。
-
一个完整的Web文档通常是由不同的子文档拼接而成的,像是文本、布局描述、图片、视频、脚本等等。
-
通俗来讲,就是计算机通过网络进行通信的规则,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据。目前任何终端(手机,笔记本电脑)之间进行任何一种通信都必须按照Http协议进行,否则无法连接。
2.HTTP请求特点?
1.支持客户端/服务器模式:客户端发送请求,服务器端响应数据。客户端向服务器请求服务时,只需要传送请求的方法和路径即可。常用的请求方法有get(查)、post(增),除此之外还有put(改)、delete(删)等,每种方法规定的客户端与服务器联系的方式不同,日常工作中见到的最多的是get和post两种。
2.简单灵活:HTTP简单,服务器的程序规模小,通信速度快;HTTP使用TCP作为它的支撑运输协议,HTTP客户机发起一个与服务器的TCP连接,一旦连接建立,浏览器(客户机)和服务器进程就可以通过套接字接口访问TCP,HTTP运行传输任意类型的数据对象。
3.无状态:协议对于事务处理没有记忆能力,客户端第一次与服务器建立连接发送请求时需要进行一系列的安全认证匹配等,因此增加页面等待时间,当客户端向服务器端发送请求,服务器端响应完毕后,两者断开连接,也不保存连接状态,(一刀两断,恩断义绝,从此路人)下一次客户端向同样的服务器发送请求时,由于他们之前已经遗忘了彼此,所以需要重新建立连接。
4.无连接:限制每次连接,使其只处理一个请求。服务器处理完客户端的请求并收到客户端的应答后,即断开连接,这种方式可以节省传输时间。
3.HTTP与HTTPS的区别?
HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(SecureSocketsLayer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
HTTP与HTTPS都是应用层协议,且本质上没有什么不同。他们的区别相对来说就是HTTPS是HTTP的安全版,HTTP信息是明文传输,而HTTPS是具有安全性的SSL加密传输,安全性要高于HTTP协议。且两者使用的端口也不一样,HTTP默认使用80端口,而HTTPS使用443端口。
HTTPS和HTTP的区别主要如下:总的来说:HTTPS=SSL+HTTP
1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
(这个只是默认端口不一样,实际上端口是可以改的)
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
4.Cookie和Session的区别?
Cookie 是访问某些网站以后在本地存储的一些网站相关的信息,下次再访问的时候减少一些步骤。另外一个更准确的说法是:Cookie 是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器,是一种在客户端保持状态的方案。由于 HTTP 协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这个机制就是 Session。
Cookie和Session是解决http协议的无状态性,区别如下:
1.存储位置不同:Cookie是将用户数据通过加密的方式保存在客户端,大多数情况Cookie存储在浏览器;Session是用于控制客户端和服务端的连接,Session存储在服务器;
2.存储容量不同:单个Cookie保存的数据不得超过4kb,一个站点最多20个Cookie,Session一般情况下没有上限,不过建议不要存放太多东西,否则影响性能;
3.存取方式不同:Cookie只能用ASCII字符串,通过编码方式获取Unicode字符或者二进制数据,不好存储复杂的信息,而Session能存储任何类型的数据;
4.隐私策略/安全性不同:Cookie放在客户端,可以进行Cookie欺骗,所以不安全,Session放在服务端,更加安全;
5.有效期不同:Cookie可以设置属性达到长期有效,Session依赖于JSESSIONID的Cookie,Cookie JSESSIONID的过期时间默认为-1,只需要关闭窗口Session就会失效,就算不依赖Cookie,用UrL重写也不能完成,如果Session超时时间过长,容易导致内存溢出;
6.服务器压力不同:Cookie保存在本地,不存在服务端压力,Session保存在服务端,每个用户产生一个Session,当访问增多,会比较占用服务器的性能,如果主要考虑到减轻服务器性能方面,应当使用Cookie;
7.浏览器支持不同:如果浏览器禁用Cookie,那么Cookie直接失效,Session比较好点,可以用URL重写;
8.cookie和session应用的场景:
cookie:用户的登录状态,记录用户的习惯,购物车;
session:登录验证;
转自:https://mp.weixin.qq.com/s?__biz=MzI5MTg1NjA4Nw==&mid=2247486218&idx=1&sn=fdd24d4c8de2a9dea254aa1672632203&chksm=ec0b00b2db7c89a420f8dda34a3bfba50a2cac877af154a9e07772bbc7b4de4cae0b8ff2fc20&scene=21#wechat_redirect
本文来自博客园,作者:术科术,转载请注明原文链接:https://www.cnblogs.com/shukeshu/p/15501882.html