http常被问到的知识总结

本文深入解析HTTP协议的工作原理,包括TCP/IP通信流程、HTTP请求方法、持久链接、Cookie设置、状态码含义,以及HTTP与HTTPS的区别。同时,探讨了web安全,如XSS攻击和CSRF防护措施。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本渣也借着这段有钱吃不饱饭,有钱买不到口罩,拉屎不敢蹲公测,看到公交地跌空荡荡却不敢上…的日子,把当初在某当买的
《图解Http》看了一篇,也正好最近用得上。这本书忘记是什么时候买的了,一直没去看过,一直拿来垫鼠标,觉得挺对不起它的
毕竟我是它爹。
看完这本《图解Http》,本渣总结了一些常用到或者被问到的知识点。

1.TCP/IP通信的传输流流程
首先简单的描述一下,TCP/IP通信的传输流的整个流程。

http(客户端)<->TCP<->IP<->网络<->网络<->IP<->TCP<->http(服务端)

这个流成大概是这样的:首先作为发送端的客户端在应用层(http协议)发出一个想看xxx.xxx.com

网站的http请求。接着,为了方便传输,在传输层(TCP协议)把从应用层收到的数据(http请求报文)

进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。然后在网络层(IP协议),增加

作为通信目的地的MAC地址后转发给链路层,到这里发往网络请求就准备好了。

接受端的服务器在链路层接收到数据,按序往上发送,一直到应用层,这样才算服务端接收到客户端

发送过来的http请求。
复制代码
2.从浏览器输入到看到页面的过程
首先用户输入URL,接着此URL会被DNS解析找到对应的IP地址,然后会与目标服务器建立TCP链接(TCP链接

也叫着TCP三次握手,所谓的三次握手就是,客户端一开始给服务端发送一个带SYN标志的数据包;服务端

接收到后,会给客户端发送一个SYN/ACK标志到数据包;然后客服端接收到了再给服务端发送一个ACK的数据

包;这样三次握手完成后就建立起了TCP链接);建立好链接后,TCP协议还会将http请求的报文分割成报文段,

按序号分为多个报文段,发送给对应的服务端;然后服务端的TCP协议接收到报文段后,按序号以原来的顺序重组

报文段,然后服务端找到对应的内容返回给浏览器。此时浏览器开始解析该返回文档,首页浏览器会先解析HTML,

生成DOM树,再解析css,生成规则树,最后结合两者,生成渲染树,在生成渲染树的过程中浏览器会调用GPU绘制,

合成图层,显示在屏幕上。
复制代码
3.HTTP所有请求方法的作用
1.GET
作用:用来请求访问已被URI识别的资源。

2.POST
作用:用来传输实体的主体。

3.PUT
作用:用来传输文件。

4.HEAD
作用:获取报文首部。

5.DELETE
作用:用于删除文件,跟put刚好相反。

6.OPTIONS
作用:用来查询针对请求URI指定的资源支持的方法。
复制代码
4.HTTP的持久链接
在请求头设置Connection:keep-alive(http1.1默认为持久链接)
复制代码
5.设置Cookie
响应头设置set-cookie

请求头设置cookie
复制代码
6.http状态码
状态码有一下几种类型:

1xx:接收的请求正在处理

2xx:请求正常处理完毕

3xx:需要进行附加操作以完成请求

4xx:服务器无法处理请求

5xx:服务器处理请求出错

复制代码
下面简单说几个常用的状态码
200:表示从客户端发到服务端的请求被正常处理成功

204:表示服务端接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分

206:表示客户端进行了范围请求,而服务端成功执行了这部分的GET请求

301:表示永久重定向

302:表示临时重定向

304:表示服务端资源未改变,可直接使用客户端未过期的缓存

400:表示请求报文中存在语法错误

401:表示发送的请求需要有HTTP认证(BASIC认证,DIGEST认证)的认证信息

403:表示服务端拒绝了客户端的请求访问

404:表示服务端未找到客户端请求的地址

500:表示服务端在执行请求时发生的错误

503:表示服务端暂时处于超负荷或正在进行停机维护
复制代码
7.HTTP和HTTPS
什么是HTTP?
HTTP是以超文本传输的协议作为规范,完成从客户端到服务端等一系列运作流程。
(也可以说它是连接客户端->网关->服务端的一个流程)
优点:
快速简单,灵活,无链接,无状态
缺点:
通信使用明文,内容可能被窃听;
不验证通信方的身份,因此有可能遭遇伪装;
无法证明报文的完整性,有可能已遭篡改

什么是https?
http加上加密处理和认证以及完整性保护(SSL)后即HTTPS
优点
HTTPS的优点就是HTTP的缺点的相反。
缺点:
慢,更耗CPU及内存资源,还有一个就是需要一笔够买证书的费用🤣

随便说一口什么是SSL:
ssl是独立HTTP协议的,是当今世界上应用最为广泛的网络安全技术。它采用的加密方式是
公开密钥加密的加密处理方式。
复制代码
8.web的常用攻击技术和防护
1.xss跨站脚本攻击
xss也分为:
1.反射型xss
什么是反射型xss?
反射型xss就是通过将恶心代码嵌入到URL中,通过URL传给服务端,
然后服务端会将恶意代码取出,拼接在HTML字符串上返回给浏览器
,并被执行,从而造成网站被攻击。

                防护:服务器拿到URL字符串参数之后,可以通过encodeURIComponent()转义后
                再拼接到HTML返回给浏览器。
                
        2.DOM型xss
            什么是DOM型xss?
                DOM型xss主要是前端js代码不够严谨把不可信的内容插入到了页面中
                从而造成网站被攻击。
                
                防护:对于添加内容中的url和src可以通过encodeURIComponent()转义;
                对于单引号,双引号,标签(‘“<>),可以通过正则表达式替换
                成(&lt,&gt,&quot,&apos)
                
        3.存储型xss
            这个本渣也看的懵懵逼逼就不说了(之后看懂了再补上)

2.CSRF跨站请求伪造
什么是CSRF?
CSRF就是攻击者通过诱导(比如xxx动画站,什么荷官在线发牌,大家懂得。。。)
被攻击者进入第三方站点,然后第三方网站向被攻击者网站发送一个跨站
请求,利用被攻击者注册的凭证,绕开服务端的验证,从而达到对被攻击者网站执行某项操作的目的。

    防护:请求添加验证码,或者添加token。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值