前端常见知识点一之HTTP
大半年没更新了,一直忙,公司也没有外网,这次找些材料整理复习巩固一下。资料来源于网络。
这里写目录标题
- 一、HTTP与HTTPS
- 1.http和https基本概念
- 2.http和https的区别
- 3.https协议的工作原理
- 4.http协议的优点
- 5.http协议的缺点
- 6.TCP三次握手、四次挥手
- 7.TCP和UDP的区别
- 8. 网络七层模型
- 9.HTTP请求方式
- 10. HTTP2.0
- 11. 400和401、403状态码
- 12.HTTP状态码
- 13.http常用请求头
- 14.强、协商缓存
- 15.GET和POST的区别
- 16.常见的HTTP头部
一、HTTP与HTTPS
1.http和https基本概念
http: 超文本传输协议,是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器请求和应答的标准(tcp),用于从WWW服务器传输超文本到浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
https: 是以安全为目标的http通道,简单的讲是http的安全版,即http下加入ssl层,http的安全基础是ssl,因此加密的详细内容就需要ssl。
https协议的主要作用是:建立一个信息安全通道,来确保数组的传输,确保网站的真实性
2.http和https的区别
http传输的数据都是未加密的,也是明文的,网景公司设置了SSL协议来对http协议传输的数据进行加密处理,简单来说https协议是有http和ssl协议构建的可进行加密传输和身份认证的网络协议,比http协议的安全性更高。 区别:
- https协议需要ca证书,费用较高
- http是超文本传输协议,信息时明文传输,https则是具有安全性的ssl加密传输协议。
- 使用不同的链接方式,端口也不同分别是80和433
- http的连接简单,是无状态的;
- https协议是由ssl+http协议构建的,可进行加密传输、身份认证的网络协议,比http协议安全
3.https协议的工作原理
客户端在使用https方式与Web服务器通信时有以下几个步骤:
- 客户使用https url 访问服务器,则要求Web服务器建立ssl链接。
- web服务器接收到客户端的请求之后,会将网站的证书(包含了公钥),返回给客户端
- 客户端和web服务器开始协商ssl链接的安全等级,也就是加密等级
- 客户端浏览器通过双方协商一致的安全等级,建立会话密钥,然后通过网站的公钥来加密会话密钥,并传送给网站。
- web服务器通过自己的私钥解密出会话密钥。
- web服务器通过会话密钥与客户端之间的通信。
4.http协议的优点
使用https协议可认证用户和服务器,确保数据发送到正确的客户机和服务器。
https协议是由http+ssl协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输的过程中不被窃取、改变,确保数据的完整性。
https是现行框架下最安全的解决方案,虽然不是绝对的安全,但它大幅增加了中间人攻击的成本。
比起同等http网站,采用https加密的网站在搜索中的排名将会更高。
5.http协议的缺点
https握手阶段比较费时,会使页面加载时间延长50%,增加费电。
https缓存不如http高效,会增加数据开销。
ssl证书也需要钱,功能越强大的证书费用更高。
ssl证书需要绑定ip,不能在同ip上绑定多个域名,ipv4资源支持不了这种消耗。
6.TCP三次握手、四次挥手
三次握手的本质是确认通信双方收发数据的能力:
首先,我让信使运输一份信件给对方,对方收到了,那么他就知道了我的发件能力和他的收件能力是可以的。
于是他给我回信,我若收到了,我便知我的发件能力和他的收件能力是可以的,并且他的发件能力和我的收件能力是可以。
然而此时他还不知道他的发件能力和我的收件能力到底可不可以,于是我最后回馈一次,他若收到了,他便清楚了他的发件能力和我的收件能力是可以的。
- 第一次握手:客户端要向服务端发起连接请求,并发送报文;
- 第二次握手:服务端收到客户端发过来的报文,并给客户端回复可以建立连接
- 第三次握手:客户端收到服务端的回复后,知道了服务端同意了这次连接,然后客户端再回复一段报文给服务端建立连接;
四次挥手的目的是关闭一个连接
- 第一次挥手:当客户端的数据都传输完成后,客户端向服务端发出连接释放报文
- 第二次挥手:服务端收到客户端发的报文后给客户端回复确认报文,此时服务端处于关闭等待状态,因为服务端可能还有数据没发完
- 第三次挥手:服务端将最后数据(比如50个字节)发送完毕后就向客户端发出连接释放报文
- 第四次挥手:客户端收到服务端发的FIN报文后,向服务端发出确认报文,服务端收到确认报文释放连接。
注意客户端发出确认报文后不是立马释放TCP连接,而是要经过2MSL(最长报文段寿命的2倍时长)后才释放TCP连接。而服务端一旦收到客户端发出的确认报文就会立马释放TCP连接,所以服务端结束TCP连接的时间要比客户端早一些。
想了解更清楚请移步该文章:《卧槽!牛皮了,头一次见有大佬把TCP/IP三次握手四次挥手解释的这么明白》
7.TCP和UDP的区别
- tcp是面向连接的,udp是无连接的–即发送数据前不需要先建立链接;
- TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付;
- TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的;
UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等); - 每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信;
- TCP首部开销20字节;UDP的首部开销小,只有8个字节;
- TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道;
那HTTP和TCP之间又有什么样的关系?那我们先来了解一下网络七层模型(OSI):
8. 网络七层模型
- 物理层:
物理层负责最后将信息编码成电流脉冲或其它信号用于网上传输;
eg:RJ45等将数据转化成0和1 - 数据链路层:
数据链路层通过物理网络链路前端常见知识点一之HTTP相关推荐
- 前端常见知识点三之HTML
前端常见知识点三之HTML 1.HTML5 drag api dragstart:事件主体是被拖放元素,在开始拖元素时触发 darg:事件是被拖放元素,在正在拖放时触发 dragenter:事件主体是 ...
- 前端常见知识点五之Fetch
前端常见知识点五之Fetch fetch()是 XMLHttpRequest 的升级版,用于在 JavaScript 脚本里面发出 HTTP 请求. fetch发送2次请求的原因 fetch发送pos ...
- 前端常见知识点二之浏览器
前端常见知识点之浏览器 目录 前端常见知识点之浏览器 1.web Quality(无障碍) 2.几个实用的BOM对象方法 3. cookie.sessionStroage.localStroage的区 ...
- 前端常见知识点四之webscoket
前端常见知识四之webscoket 1. 概览 1)WebSocket 它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一 ...
- web前端知识点太多_web前端常见知识点
css table布局的缺点 1.Table要比其它html标记占更多的字节.(延迟下载时间,占用服务器更多的流量资源.) 2.Tablle会阻挡浏览器渲染引擎的渲染顺序.(会延迟页面的生成速度,让用 ...
- 反爬与反反爬常见知识点
服务器反爬的原因1. 爬虫占总PV较高,浪费资源2. 资源被批量抓走,丧失竞争力3. 法律的灰色地带服务器常反什么样的爬虫1. 十分低级的应届毕业生根本不管服务器的压力,很容易把站点搞挂2. 十分低级 ...
- 计算机网络常见知识点总结
文章目录 前言 一.常见知识点 1. 计算机网络的各层协议及作用? 2. TCP和UDP的区别? 3. 详细介绍一下 TCP 的三次握手机制? 4. 为什么需要三次握手,而不是两次? 5. 为什么要三 ...
- 2021届前端面试知识点(其他)
2021届前端面试知识点(其他) 1. 什么是"前端工程化"? 2. xss跨站脚本攻击原理?如何进行?防御手段? 3. CSRF跨站请求伪造原理?如何进行?防御手段? 4. Sq ...
- Java面试常见知识点总结
目录 面试常见知识点 静态代码块 代码块 构造方法之间的顺序 interface和abstract的区别 abstract能不能继承interface 反正可不可以 interface 和abstra ...
最新文章
- 2020年必学的 10 大算法
- 通过OData创建C4C Lead时,遇到Account missing的错误消息
- 【hash】Seek the Name, Seek the Fame
- AspNetCore微服务下的网关-Kong(一)
- 2017.5.9 货车运输 思考记录
- python 搜索功能,使用Python使用网站的搜索功能
- JAVA 1.7并发之LinkedTransferQueue原理理解
- python目录操作_Python 简明教程 --- 25,Python 目录操作
- iOS TableView性能优化
- Java基准测试工具JMH使用
- 凯撒密码的Java实现
- Swift 使用SwiftyJSON解析JSON数据
- [含论文+答辩PPT+任务书+中期检查表+源码等]S2SH健身俱乐部会员系统
- Shapefile简介
- CentOS8 离线安装 汉语拼音
- foxmail连接163邮箱服务器,Foxmail怎么接收163邮箱? foxmail添加163邮箱的方法
- java孙正英_JavaSE23-函数式接口Stream流
- mvp的全称_王者荣耀里面每把有mvp但是mvp是什么意思呢
- 中国移动云能力中心IaaS产品部2021年招聘
- CAD碎片化学习教程 @4. 按比例放大或缩小图形尺寸
热门文章
- JS 加强篇!推荐 10 个好用的 TypeScript 的开源项目 YYDS !
- Spark广播变量使用示例
- linux centos根据工具查找所在软件包命令:yum provides */nslookup
- vmware NAT模式下虚拟机不能连外网解决办法
- python3 三角函数
- Redis开发:hash存储自定义Java对象及value的序列化器设置
- Spring MVC--自定义HttpMessageConverter接收JSON格式的数据
- 边缘计算架构_边缘计算到底是个什么技术?边缘计算硬件架构
- dos攻击mysql_浅谈DOS与DDOS攻击
- Matlab实现字符串分割
- 前端常见知识点三之HTML