http常被问到的知识总结

最近上班和下班的路上,行人空空如也,没了他日的吵闹,没了他日繁荣,此时内心有种不是滋味的滋味,贼难受🥺;但愿疫情赶忙走css

吧,还我正常的生活;病毒无情,人间有爱!中国加油,武汉加油!前端

本渣也借着这段有钱吃不饱饭,有钱买不到口罩,拉屎不敢蹲公测,看到公交地跌空荡荡却不敢上...的日子,把当初在某当买的web

《图解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。。
复制代码

以上本渣是对《图解HTTP》的一些经常使用的东西总结,有不到位的但愿大佬的指出。服务器

相关文章
相关标签/搜索