0
点赞
收藏
分享

微信扫一扫

应用层-HTTP相关知识详解

正义的杰克船长 2022-01-05 阅读 115

GET和POST的区别:

1. get所提交的数据位于URL之后,请求参数等会被完整的保留在浏览器记录里,参数的暴露存在安全问题,往往用于获取;而post参数在请求主体内,参数不会被保留因此更为安全,可以用于修改服务器的资源。

2. get请求只支持URL编码,post支持多种编码格式

3. get只支持ASCII字符格式的参数,post没有限制

4. get的提交数据大小受到浏览器限制,post提交的数据无限制

5. get方式需要Request.QueryString来取得变量值,post是童年过Request.form来获取

6. get方法产生一个TCP数据包,post产生两个。

Keep-Alive和非Keep-Alive的区别:

早期http/1.0中,浏览器每次发起http请求都要和服务器建立一个新的TCP连接,服务器完成请求后立刻断开,服务器不会记录过去的请求,创建和关闭的过程需要消耗资源和时间,为了减少资源的消耗,缩短响应时间,就需要重用连接。

http/1.1版本中默认使用持久连接,在此之前的http版本都是用的非持久连接,如果想在旧版本协议实现持久连接,就必须在指定的connection首部字段值设置为keep-alive。

非KA需要为每个请求的对象建立与维护一个新的连接,每个连接,client和server都要分配TCP缓冲区和变量,这将会给服务器带来严重负担,因为服务器通常会服务于数量巨大的客户端。KA方式下,服务器响应后该TCP连接会一直打开,client和server可通过相同的连接进行传输。

但KA也可能存在长时间连接而没有传输,导致占用了大量系统资源,因此对于TCP连接的最后一个http响应完成,会设置一个keepalive_timeout秒,之后就会对该连接关闭。

长连接:通常用于频繁的通讯情况,客户端连接较少,比如IM通讯,游戏。

短连接:用户数目较多的网页使用短连接,比如大型的电商网站。

HTTP的方法:

HTTP/1.0:

GET:请求指定页面信息和返回内容,用于读取数据

HEAD:类似于GET请求,但返回没有具体内容,只有获取报头。

POST:向指定资源提交数据请求,数据被包含在请求体内,能够建立新的资源或者修改已有资源

HTTP/1.1:

PUT:替换指定资源,如果没有该资源就新增。

DELETE:请求服务器删除URL标识的资源。

CONNECT:将服务器作为代理,让服务器代替用户进行访问。

OPTIONS:向服务器发送该方法,会返回对指定资源(服务器)所支持的HTTP请求方法。

TRACE:回服务器收到的请求数据,即服务器返回自己收到的数据,主要用于测试诊断。

PATCH:对PUT进行补充,用来对已知资源进行局部更新。

举报

相关推荐

0 条评论