1、HTTP 与 HTTPS 的区别

理解:

1、HTTPS 协议需要到 CA (Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用。(以前网易官网是HTTP,而网易邮箱是 HTTPS 。)
2、HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的 SSL 加密传输协议
3、HTTP 和 HTTPS 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443
4、HTTP 的连接很简单,是无状态的。HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密 传输、身份认证的网络协议,比 HTTP 协议安全。(无状态的意思是其数据包的发送、传输 和接收都是相互独立的。无连接的意思是指通信双方都不长久的维持对方的任何信息。)

2.简述 web 前端 cookie 机制,并结合该机制说明会话保持原理?

Cookie 是进行网站用户身份,实现服务端 Session 会话持久化的一种非常好方式Cookie
最 早由 Netscape 公司开发,现在由 IETF 的 RFC 6265 标准备对其规范,已被所有主流浏览器 所支持
1、为什么需要 Cookie
HTTP 是一种无状态的协议,客户端与服务器建立连接并传输数据,数据传输完成后,连接 就会关闭。再次交互数据需要建立新的连接,因此,服务器无法从连接上跟踪会话,也无法知道用户上一次做了什么。这严重阻碍了基于 Web 应用程序的交互,也影响用户的交互 体验。如:在网络有时候需要用户登录才进一步操作,用户输入用户名密码登录后,浏览了几个页面,由于 HTTP 的无状态性,服务器并不知道用户有没有登录Cookie 是解决 HTTP 无状态性的有效手段,服务器可以设置或读取 Cookie 中所包含的信息。当用户登录后,服务器会发送包含登录凭据的 Cookie 到用户浏览器客户端,而浏览器对该 Cookie 进行某种形式的存储(内存或硬盘)。用户再次访问该网站时,浏览器会发送该Cookie (Cookie 未到期时)到服务器,服务器对该凭据进行验证,合法时使用户不必输入用户名和密码就可以直接登录

本质上讲,Cookie 是一段文本信息。客户端请求服务器时,如果服务器需要记录用户状态,就在响应用户请求时发送一段 Cookie 信息。客户端浏览器保存该 Cookie 信息,当用户再次 访问该网站时,浏览器会把 Cookie 做为请求信息的一部分提交给服务器。服务器检查Cookie 内容,以此来判断用户状态,服务器还会对 Cookie 信息进行维护,必要时会对Cookie 内容 进行修改
2、 Cookie 的类型
Cookie 总时由用户客户端进行保存的(一般是浏览器),按其存储位置可分为:内存式Cookie 和硬盘式 Cookie。内存式 Cookie 存储在内存中,浏览器关闭后就会消失,由于其存储时间较短,因此也被称为非持久 Cookie 或会话 Cookie。硬盘式 Cookie 保存在硬盘中,其不会随浏览器的关闭而消失,除非用户手工清理或到了过期时间。由于硬盘式 Cookie 存储时间是长期的,因此也被称为持久 Cookie。

3、Cookie 的实现原理

Cookie 定义了一些 HTTP 请求头和 HTTP 响应头,通过这些 HTTP 头信息使服务器可以与客户 进行状态交互。客户端请求服务器后,如果服务器需要记录用户状态,服务器会在响应信息中包含一个Set-Cookie 的响应头,客户端会根据这个响应头存储 Cookie 信息。再次请求服务器时,客 户端会在请求信息中包含一个 Cookie 请求头,而服务器会根据这个请求头进行用户身份、状态等较验。下面是一个实现 Cookie 机制的,简单的 HTTP 请求过程:
3.1)客户端请求服务器
客户端请求 IT 笔录网站首页,请求头如下:GET / HTTP/1.0HOST: itbilu.com
3.2)服务器响应请求
Cookie 是一种 key=value 形式的字符串,服务器需要记录这个客户端请求的状态,因此 在响应头中包一个 Set-Cookie 字段。响应头如下:HTTP/1.0 200 OKSet-Cookie: UserID=itbilu; Max-Age=3600; Version=1Content-type: text/html
……
3.3)再次请求时,客户端请求中会包含一个 Cookie 请求头
客户端会对服务器响应的 Set-Cookie 头信息进行存储。再次请求时,将会在请求头中包含服务器响应的 Cookie 信息。请求头如下GET / HTTP/1.0HOST: itbilu.comCookie: UserID=itbilu

3、一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么

1、浏览器查找域名对应的 IP 地址(DNS 查询:浏览器缓存->系统缓存->路由器缓存->ISPDNS 缓存->根域名服务器)
2、浏览器向 Web 服务器发送一个 HTTP 请求(TCP 三次握手)
3、服务器 301 重定向(从 HTTP://example.com 重定向到 HTTP://www.example.com)
4、浏览器跟踪重定向地址,请求另一个带 www 的网址
5、服务器处理请求(通过路由读取资源)
6、服务器返回一个 HTTP 响应(报头中把 Content-type 设置为 ‘text/html’)
7、浏览器进 DOM 树构建
8、浏览器发送请求获取嵌在 HTML 中的资源(如图片、音频、视频、CSS、JS 等)
9、浏览器显示完成页面
10、浏览器发送异步请求

4、你知道的 HTTP 请求方式有几种

HTTPRequestMethod 共计 17 种
1、GET 请求指定的页面信息,并返回实体主体。
2、HEAD 类似于 get 请求,只不过返回的响应中没有具体的内容,用于获取报头
3、POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。
4、PUT 从客户端向服务器传送的数据取代指定的文档的内容。
5、DELETE 请求服务器删除指定的页面。
6、CONNECT HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。
7、OPTIONS 允许客户端查看服务器的性能。
8、TRACE 回显服务器收到的请求,主要用于测试或诊断。
9、PATCH 实体中包含一个表,表中说明与该 URI 所表示的原内容的区别。
10、MOVE 请求服务器将指定的页面移至另一个网络地址。
11、COPY 请求服务器将指定的页面拷贝至另一个网络地址。
12、LINK 请求服务器建立链接关系。
13、UNLINK 断开链接关系。
14、WRAPPED 允许客户端发送经过封装的请求。
15、LOCK 允许用户锁定资源,比如可以再编辑某个资源时将其锁定,以防别人同时对 其进行编辑。
16、MKCOL 允许用户创建资源
17、Extension-mothed 在不改动协议的前提下,可增加另外的方法。

5、描述一下 HTTP 的请求过程与原理

HTTP 请求的过程
域名解析 --> 发起 TCP 的 3 次握手 --> 建立 TCP 连接后发起 HTTP 请求 -->服务器响应 HTTP 请求,浏览器得到 html 代码 -->浏览器解析 html 代码,并请求 html 代码中的资源(如 js、css、图片等) --> 浏览器对页面进行渲染呈现给用户
请求原理
HTTP 协议是应用层的一种协议,是一种 C/S 架构服务,基于 TCP/IP 协议来通信,监听在TCP 的 80 端口上,HTTP 协议实现的是客户端可以向服务端获得 web 资源

6、HTTPS 有几次握手和挥手?HTTPS 的原理什么是

HTTPS 是 3 次握手和 4 次挥手,和 HTTP 是一样的。
HTTPS 的原理
HTTPS 在传输数据前需要客户端(浏览器)与服务器(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息.TLS/SSL 协议是一套加密传输协议,使用了非对称加密,对称加密,以及 HASH 算法,
HTTPS 为什么安全
因为网络请求需要中间有很多的服务器路由器的转发。中间的节点都可能篡改信息,而如果使用 HTTPS,密钥在你和终点站才有。HTTPS 之所以比 HTTP 安全,是因为他利用ssl/tls 协议传输。它包含证书,卸载,流量转发,负载均衡,页面适配,浏览器适配,refer传递等。保障了传输过程的安全性

7、什么是 TCP 连接的三次握手

TCP 是因特网中的传输层协议,使用三次握手协议建立连接,完成三次握手,客户端与服 务器开始传送数据。
第一次握手:建立连接时,客户端发送 syn 包(syn=j)到服务器,并进入 SYN_SENT 状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次握手:服务器收到 syn 包,必须确认客户的 SYN(ack=j+1),同时自己也发送一个 SYN 包(syn=k),即 SYN+ACK 包,此时服务器进入 SYN_RECV 状态;
第三次握手:客户端收到服务器的 SYN+ACK 包,向服务器发送确认包 ACK(ack=k+1),此 包发送完毕,客户端和服务器进入 ESTABLISHED(TCP 连接成功)状态,完成三次握手

TCP 协议优点
TCP 发送的包有序号,对方收到包后要给一个反馈,如果超过一定时间还没收到反馈就 自动执行超时重发,因此 TCP 最大的优点是可靠。
TCP 协议缺点
很简单,就是麻烦,如果数据量比较小的话建立连接的过程反而占了大头,不断地重发 也会造成网络延迟,因此比如视频聊天通常就使用 UDP,因为丢失一些包也没关系,速 度流畅才是重要的

8、为什么 TCP 连接需要三次握手四次挥手

为什么是三次握手
为了防止已失效的连接请求报文段突然有送到了服务器,因而产生错误,假设两次握手时,
客户发出的第一个请求连接报文段在某一网络节点长时间滞留,以致延误到连接释放后才
到达服务器。服务器收到失效的连接请求报文段后,认为是客户又发出一次新的连接请
求。于是向客户发送确认报文段,同意建立连接,此时在假定两次握手的前提下,连接建立成
功。这样会导致服务器的资源白白浪费
为什么是四次挥手
TCP 协议是全双工通信,这意味着客户端和服务器端都可以向彼此发送数据,所以关闭连接 是双方都需要确认的共同行为,假设是三次挥手时,首先释放了客户到服务器方向的连接,此时 TCP 连接处于半关闭状态,这时客户不能向服务器发送数据,而服务器还是可以向客户发送数据。如果此时客户收到了服务器的确认报文段后,就立即发送一个确认报文段,这会导致服务器向客户还在发送数据时连接就被关闭。这样会导致客户没有完整收到服务器所发的报文段。

9、TCP 与 UDP 的区别有哪些

什么是 TCP
TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字
节 流的传输层通信协议
什么是 UDP
UDP(User Datagram Protocol 用户数据报协议)是 OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服 务
区别
TCP 是面向连接的传输控制协议,而 UDP 提供了无链接的数据报服务//类似电话与短信
TCP 面向连接,提供可靠的数据服务
TCP 首部开销 20 字节,UDP 首部开销 8 字节
TCP 逻辑通信信道是全双工的可靠信道,UDP 则是不可靠信道
UDP 没有拥塞机制,因此网络出现拥堵不会使源主机的发送效率降低(有利于实时会议视频 等)
TCP 的连接只能是点到点的,UDP 支持一对一,多对一,多对多的交互通信

10、HTTP2 / HTTP1 之间的区别是什么

区别
1、HTTP2 采用二进制格式而非文本格式,比起文本格式,二进制格式解析起来更加高效,并且错误少。
2、HTTP2 是完全的多路复用,非有序并阻塞的----只需要一个连接即可实现并行,多路复用的意思是它能同时处理多个消息的请求和响应,HTTP1 是一个连接一次只能提交一个请 求的效率比较高,多了就会变慢。
3、使用报头压缩,HTTP2 降低了开销,HTTP1 的消息头很大冗余,HTTP2 是将消息头中的不 同的部分分别用不用的索引进行表示,且会用哈夫曼编码压缩字符串,最后封装成 frame。
4、HTTP2 让服务器可以将响应主动”推送”到客户端缓存中,HTTP2 中服务器会主动将资源推 送给客户端,例如把 js 和 css 文件主动推送给客户端而不用客户端解析 HTML 后请求再响应。

事件循环的理解

事件队列—>>事件循环 (定时器 客户端返回ajax 一切以on开头的 执行是都在循环中执行代码 js单线程语言 )

HTTP HTTPS WEB的cookie机制 TCP UCP(三次握手四次挥手)相关推荐

  1. 再深谈TCP/IP三步握手四步挥手原理及衍生问题—长文解剖IP

    转载地址: https://www.zhoulujun.cn/html/theory/ComputerScienceTechnology/network/2015_0708_65.html 如果对网络 ...

  2. 在深谈TCP/IP三步握手四步挥手原理及衍生问题—长文解剖IP

    如果对网络工程基础不牢,建议通读<细说OSI七层协议模型及OSI参考模型中的数据封装过程?> 下面就是TCP/IP(Transmission Control Protoco/Interne ...

  3. tcp 二次握手时延_一篇搞懂TCP的三次握手 四次挥手

    TCP的三次握手四次挥手,估计大家都听过.但是真的能把每一步说明白的人比较少.我还记得在之前面试的时候被面试官一顿问,然后一脸懵B... 都是大学没好好上课 ,这篇文章就跟大家讲讲到底这三握四挥是在搞 ...

  4. 计算机网络之UDP与TCP协议(三次握手, 四次挥手)

    ⭐️前面的话⭐️ 本文介绍计算机网络中有关传输层协议的知识--UDP与TCP协议,在TCP协议中,为了保证数据的可靠传输,引入了十大保证可靠性的机制,即确认应答,超时重传,连接管理(三次握手,四次挥手 ...

  5. 了解TCP协议,IP协议、ICMP协议和ARP协议(TCP报文,TCP的分成管理,TCP与UDP,TCP的三次握手四次挥手原理)

    文章目录 了解TCP/IP协议 TCP报文格式 TCP/IP 的分层管理 TCP与UDP TCP的三次握手与四次挥手 为什么要三次握手? 为什么要四次挥手? IP数据包格式 ICMP协议 ICMP协议 ...

  6. java tcp 三次握手_用Java代码分析TCP的三次握手四次挥手过程

    (1)客户端发送一个带SYN标志的TCP报文到服务器.这是三次握手过程中的报文1. (2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标志.因此它表示对刚才客户 ...

  7. tcp状态机-三次握手-四次挥手以及常见面试题

    TCP状态机介绍 在网络协议栈中,目前只有TCP提供了一种面向连接的可靠性数据传输.而可靠性,无非就是保证,我发给你的,你一定要收到.确保中间的通信过程中,不会丢失数据和乱序.在TCP保证可靠性数据传 ...

  8. 面试必问!!彻底搞清楚 tcp 的三次握手四次挥手

    首先先说明,关于三次握手和四次挥手,是对于TCP/IP协议的,而不是说HTTP协议的: 这里大家应该清楚,HTTP协议本身是应用层的,协议本身并不能约束传输层的操作方式.不过现有 HTTP 协议实现的 ...

  9. 详解TCP协议三次握手四次挥手

    三次握手: 三次握手表示建立通信阶段,在TCP协议中,在发送数据的准备阶段,客户端与服务器之间的三次交互,以保证连接的可靠,由于这种面向连接的特性, TCP协议可以保证传输数据的安全,所以应用十分广泛 ...

最新文章

  1. Recyclerview 出现 java.lang.IndexOutOfBoundsException: Inconsistency detected 异常
  2. MySQL内核月报 2014.11-MySQL· 5.7特性·在线Truncate undo log 表空间
  3. MyBatis入门实例-包括实体类与数据库字段对应CLOB字段处理
  4. 记录发现的一个hiredis的bug
  5. MFC对话框绘制灰度直方图
  6. Android WebView注入js文件,判断当前HTML有没有某个js然后再注入
  7. 汇编语言:实验10 根据材料编程—1.显示字符串
  8. “理了么”app使用体验
  9. 华为服务器报错信息,厂商 push 不通排查指南
  10. HTML知识积累及实践(一)- 标签样式
  11. html如何导入字体样式表,导入html字体及其样式变体?
  12. Android OpenGL ES 开发教程(12):绘制一个20面体
  13. 计算机切换用户界面键,电脑切换用户_电脑切换用户快捷键
  14. mysql查询数据1168_mysqldump 1168 error
  15. WSL下源码阅读工具LXR(Linux Cross-Referencer)的配置
  16. 大数据就业方向_如今大数据行业就业前景如何?
  17. matlab(simulink)里怎么求一个波形的动态平均值
  18. 【漫画】各大互联网公司的真实“人”生
  19. EasyExcel为单个Cell设置样式
  20. 龙讯4号 龙芯图谋你的客厅

热门文章

  1. 线性代数之基础解系与通解的求法
  2. 九个方面告诉你,一个合格的数据分析师,到底要什么能力?
  3. 数据结构之线性表/队列/栈/树
  4. 【CAD开发】gltf文件格式的转换工具汇总(js、python、c++)
  5. 百度地图规划驾车线路DrivingRoute,自定义标注线路样式,禁止起始点途经点拖拽
  6. 餐饮界的传奇-陈明保:美国最火爆的餐饮项目幕后推手
  7. 华为Forsion Compute笔记
  8. WE大会马化腾要告诉我们什么?
  9. 为什么会存在1px问题?怎么解决?
  10. 胡立阳:股市赚钱的人都不“正常”