HTTP、HTTPS、Cookie、Session た 入场券 2022-11-06 15:52 180阅读 0赞 # HTTP # ![在这里插入图片描述][b97c4febfdd353239ffae54a2c11bdec.png_pic_center] > ### 在浏览器地址栏输入URL,按下回车后经历的流程 ### > > 1. DNS解析:依据URL逐层解析URL中的域名对应的IP > 浏览器缓存<系统缓存<路由器缓存<IPS服务器缓存<根域名服务器缓存<顶级域名服务器缓存 > 2. 与服务器TCP连接:根据ip地址和目的端口 > 3. 发送HTTP请求: > 4. 服务器处理请求返回HTTP报文 > 5. 浏览器解析渲染页面、连接结束(四次挥手) <table> <thead> <tr> <th>HTTP状态码</th> <th></th> </tr> </thead> <tbody> <tr> <td>1xx</td> <td>指示信息:请求已接收,继续处理</td> </tr> <tr> <td>2xx</td> <td>成功:请求已接收,理解、接受</td> </tr> <tr> <td>3xx</td> <td>重定向:要完成请求必须进行进一步的操作</td> </tr> <tr> <td>4xx</td> <td>客户端错误:请求有语法错误或请求无法实现</td> </tr> <tr> <td>5xx</td> <td>服务器端错误:服务器未能实现合法的请求</td> </tr> </tbody> </table> <table> <thead> <tr> <th>常见HTTP状态码</th> <th></th> </tr> </thead> <tbody> <tr> <td>200</td> <td>正常</td> </tr> <tr> <td>400 Bad Request</td> <td>客户端请求有语法错误,不能被服务器所理解</td> </tr> <tr> <td>401 Unauthorized</td> <td>请求未经授权</td> </tr> <tr> <td>403 Forbidden</td> <td>服务器收到请求,但是拒绝提供服务</td> </tr> <tr> <td>404 Not Found</td> <td>请求资源不存在、输入了错误的URL</td> </tr> <tr> <td>500 Internal Server Error</td> <td>服务器发生不可预期的错误</td> </tr> <tr> <td>503 Server Unavailable</td> <td>服务器当前不能处理客户端的请求,一段时间后可能恢复正常</td> </tr> </tbody> </table> > ### GET和POST区别 ### > > 1. HTTP报文 > GET将请求信息放在URL,POST放在报文体 > 2. 数据库层面 > GET符合幂等性(对数据库的一次与多次操作获得的结果是一致的)和安全性(不改变数据库数据),POST不符合 > 3. 其他层面 > GET可以被缓存、存为书签,POST不行 ### HTTP和HTTPS的区别 ### ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDE0MjA3NQ_size_16_color_FFFFFF_t_70] <table> <thead> <tr> <th>HTTP</th> <th>对比</th> <th>HTTPS</th> </tr> </thead> <tbody> <tr> <td>不需要</td> <td>证书</td> <td>需要到CA申请证书</td> </tr> <tr> <td>明文传输</td> <td>传输方式</td> <td>密文传输</td> </tr> <tr> <td>80</td> <td>端口</td> <td>443</td> </tr> <tr> <td>无状态</td> <td></td> <td>HTTP+SSL</td> </tr> </tbody> </table> > #### SSL安全套接层 #### > > 为网络通信提供安全及数据完整性的一种安全协议 > 采用身份验证和数据加密保证网络通信的安全和数据的完整性 ### HTTPS数据传输流程 ### 1. 浏览器将支持的加密算法信息发送到服务器 2. 服务器选择一套浏览器支持的加密算法,以证书的形式返回浏览器 3. 浏览器验证证书合法性,结合证书公钥加密信息发送给服务器 4. 服务器使用私钥解密信息,验证哈希,加密响应消息回发浏览器 5. 浏览器解密响应消息,并对消息进行验证,之后进行加密交互数据 ### 即使使用HTTPS也有可能被劫持 ### 浏览器默认填充http://,一般使用301或302进行跳转 此过程中会使用到http转发到https,就有可能不安全 解决方法:HSTS优化 -------------------- # Cookie和Session # 均为解决:HTTP无状态的问题 > #### 1. Cookie简介 #### > > 由服务器发送给客户端的特殊信息,以文本型式存放在客户端 > 客户端再次请求是,会回发Cookie > 服务器收到后,解析Cookie生成与客户端相对应的内容 > > #### 2. Cookie的设置以及发送过程 #### > > ![在这里插入图片描述][format_png_pic_center] > #### 1.Session简介 #### > > 服务器端的机制,在服务器上保存信息 > 解析客户端请求并操作session id,按需保存状态信息 > > #### 2.实现方式 #### > > 2.1 使用Cookie实现 > ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDE0MjA3NQ_size_16_color_FFFFFF_t_70 1] > 2.2 使用URL回写实现 > 服务器返回的页面的请求链接中都携带JESSIONID参数 > ### Cookie和Session区别 ### > > Cookie数据纯放在客户的浏览器上,Session数据放在服务器上 > Session相对与Cookie更安全 > Cookie能减轻服务器负担 [b97c4febfdd353239ffae54a2c11bdec.png_pic_center]: /images/20221023/ef04fb4c081e4c6ca35ef7ea02852169.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDE0MjA3NQ_size_16_color_FFFFFF_t_70]: /images/20221023/dc4ef4c2e881462599f4665dc27d7657.png [format_png_pic_center]: /images/20221023/837530e774314fca84a3d2fd8eae0899.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDE0MjA3NQ_size_16_color_FFFFFF_t_70 1]: /images/20221023/8fc95ecb6dba478ca611bcf5419fb3c3.png
还没有评论,来说两句吧...