-
GET和POST的区别
- GET的参数是通过URL传输,因此直接暴露在URL上不安全,post放在request body中相对隐私;
- 当浏览器回退时,get不会再重新请求,但是post会;
- get只支持ASCII字符传输,post没有限制;
- get会被主动保存在浏览器缓存中,post不会;
- get在url的传输有大小限制,2kb以内,post没有限制;
- get产生一个tcp数据包,一次将head和data一起传输;post会产生两个数据包,首先发送head,服务器相应100 continue,再发送data。
-
TCP/IP的三次握手
1. 客户端主动发送建立连接请求,发送序号SYN=1,并且随机选取一个序列号seq=x的数据包给服务器;
2. 服务器接收之后返回序号SYN=1,ACK=1确认连接,并且随机选取一个序列号seq=y的数据包,以及ack=x+1(表示x之前的已接收,继续发送x之后的数据);
3. 客户端再次发送确认序号ACK=1,并且发送seq=x+1的数据包,以及ack=y+1(表示y以前的已接收)。 -
HTTP请求头部有哪些字段
1.通用报文首部
Cache-Control
Connection
Date
Pragma
Trailer
Transfer-Encoding
Upgrade
Via
Warning2.请求报文首部
Accept
Accept-Language
Accept-Encoding
Accept-Charset
Authorization
Expect
From
Host
If-Match
If-Modified-Since
If-None-Match
If-Range
If-Unmodified-Since
Max-Forwards
Proxy-Authorization
TE
Range
Referer
User-Agent3.响应报文首部
Accept-Ranges
Age
Location
Proxy-
vary
Server Http4.实体报文首部
Allow
Content-encoding
Content-length
Content-range
Content-Language
Content-location
Content-MD5
Content-type
Expires
Last-Modified -
HTTP2
1.新的二进制格式
以往的http是以文本的方式传输,这里引入二进制格式进行编码。
2.头部压缩
使用了HPACK压缩格式对传输的header进行编码,减少了header的大小。并且在两端建立了索引表用于记录出现过的header,传输时就可以传输记录过的header键名,对端收到数据后可以通过键名找到对应的值。
3.多路复用
可以让多个请求共用一个tcp连接,加快网页加载速度。对端可以通过帧中的标识知道属于哪个请求。(避免队头阻塞问题)
4.服务端推送
服务器可以在客户端某个请求后主动推送其他资源,比如有些资源是客户端一定会请求的,那就可以采用这个技术提前进行推送。相对可以减少一些延迟时间。 -
xss,csrf的概念以及防范方法
xss: 跨站脚本攻击
攻击者恶意在网页中嵌入恶意代码(输入的数据变成代码)
防御:转义和过滤用户提交的信息。
csrf: 跨站请求伪造
攻击者盗用用户身份发出请求,利用用户的cookie进行认证,而这个请求于服务器而言是合法的。
防御:1.不用cookie进行验证,采用token(不存储在浏览器),每提交表单时生成一个随机token,存储在session中,每次验证表单token是否正确。
2.识别HTTP referer字段,这个字段会告知服务器这个页面从哪个链接而来,服务器会基于此进行处理。
web网络
最新推荐文章于 2022-10-28 17:31:17 发布