一、GET和POST的区别
GET:查询字符串(名称/直对)是在GET请求的URL中发送的,如:/test/demo_form.asp?name1=value1&name2=value
1、GET请求可被缓存
2、GET请求保留在浏览器历史记录中
3、GET请求可被收藏为书签
4、GET请求不应再处理铭感数据时使用
5、GET请求有长度限制(根据浏览器不同而不同,详情请见:https://blog.csdn.net/zimuxin/article/details/78082747)
6、GET请求只应当用于取回数据
POST:查询字符串(名称/值对)是在POST请求的HTTP消息主题中发送的:POST/test/demo_form.asp HTTP/1.1Host: w3schools.comname1=value1&name2=value2
1、POST请求不会被缓存
2、POST请求不会保留在浏览器历史记录中
3、POST不能被收藏为书签
4、POST请求对数据长度没有要求
二、DNS使用的协议
即使用TCP又使用UDP
首先先了解一下TCP与UDP传送字节的长度限制
1、UDP报文的最大长度为512字节,而TCP则容许报文长度超过512字节。当DNS查询超过512字节时,协议的TC标志出现删除标志,这时则使用TCP发送,通常传统的UDP报文一般不会大于512字节。
区域传送时使用TCP,主要有以下两点考虑:
1、辅域名服务器会定时(一般为3小时)向主域名服务器进行查询以便了解数据是否有变动。如有变动,则会执行一次区域传送,进行数据同步。区域传送将使用TCP而不是UDP,因为数据同步传送的数据量比一个请求和应答的数据量要多得多。
2、TCP是一种可靠的链接,保证了数据的准确性。
域名解析时使用UDP协议:
客户端向DNS服务器查询域名,一般返回的内容都不超过512字节,用UDP传输即可。不用经过TCP三次握手,这样DNS服务器负载更低,相应更快。虽然从理论上说,客户端也可以制定向DNS服务器查询的时候使用TCP,但事实上,很多DNS服务器进行配置的时候,仅支持UDP查询包。
三、幂等
一个幂等操作的特点是其任意多次执行所生产的影响均与一次执行影响相同。幂等函数,或者幂等方法,是指可以使用相同参数重复执行,并能获取相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行对系统造成改变。列如:“getUsername()”和"setTrue()"函数就是一个幂等函数。
四、Cookies和session的区别
1、Cookies是一种能够让网站服务器把少量数据存储到客户端的硬盘和内存,或者从客户端的硬盘读取数据的一种技术。 Cookies是当你浏览某网站时,由Web服务器置于你硬盘上的一个非常小的文本文件,它可以记录你的用户ID,密码,浏览过的网页、停留的时间等信息。session:当用户请求来自应用程序的web页时,如果该用户还没有会话,则Web服务器将自动创建一个session对象。当会话过期或被放弃时,服务器将终止该会话。cookies机制:采用的是在客户端保持状态的方案,而session机制采用的是在服务端保持状态的方案。同时我们看到由于服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助cookie机制来达到保存标识的目的。
2、Session是服务器用来跟踪用户的一种手段,每个Session都有一个唯一标识:session ID。当服务器创建了Session时,给客户端发送的响应报文包含了Set-cookie字段,其中有一个名为sid的键值对,这个键值Session ID。客户端收到后就把Cookie保存浏览器,并且之后发送的请求报表都包含SessionID。HTTP就是用过Session和Cookie这两个发送一起合作来实现用户状态,Session用户服务器,Cookie用户客户端。