首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

HTTP你需要知道的

概述 本文主要用于记录http相关的一些细碎知识点,备忘。 http与https的区别 HTTPS是在处于应用层的HTTP协议与处于传输层的TCP协议之间,增加了一层SSL。...HTTPS对传输数据进行了加密,并且HTTPS需要CA机构wosign的颁发的SSL证书。 无状态协议 HTTP是无状态协议 ,每次请求不能对下次请求造成影响。...当我们需要请求有状态时,需要客户端记录一个Cookie。...Cookie就相当于一个通行证,第一次访问的时候给客户端发送一个Cookie,当客户端再次来的时候,拿着Cookie(通行证),那么服务器就知道这个是”老用户“。...,与重定向无关 307:临时重定向,与302类似,只是强制要求使用POST方法 400:请求报文语法有误,服务器无法识别 401:请求需要认证 403:请求的对应资源禁止被访问 404:服务器无法找到对应资源

53340

你需要知道的开源项目

分享几个开发过程中经常需要使用到的开源项目。...Apache Commons Apache Commons是一个专注于可重用Java组件的Apache开源项目,它同样也包含了很多开发经常需要用到的核心库,例如编码、解码、集合框架、加解密、I/O、日志等...Dozer 你可能使用过Apache Commons BeanUtils对两个bean进行属性值映射,但是它在某些情况下不是那么的好用,例如多级深层次的映射。...Dozer不但可以进行简单的属性映射、复杂的类型映射、双向映射、递归映射等,还可以通过XML配置文件、注解或API的方式进行更灵活的配置,官直通地址:http://dozer.sourceforge.net...Java SE 8之前的标准日期和时间类使用上感觉不是很友好,Joda-Time在Java SE 8之前提供了很多便利,8开始的版本仍可以使用其特殊的便捷,直通地址:http://www.joda.org

63220
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    关于缓存你需要知道的

    About Cache 作后端开发的同学,缓存是必备技能。这是你不需要花费太多的精力就能显著提升服务性能的灵丹妙药。前提是你得知道如何使用它,这样才能够最大限度发挥它的功效,并抑制其副作用。...我们在创建表的时候,并不会未所有的字段创建索引,这意味着如果我们需要读取非缓存数据就要从磁盘拿数据。这个过程至少需要十几毫秒的时间。而缓存往往是基于内存的,这要比DB读数据快两个数量级。...证明我们加缓存这件事的收益越高。 加缓存 如果你平时都用一些ORM工具很可能下边这些问题你不会直接遇到,不过这些问题都是在你加缓存之前需要着实想清楚的。算是一些通用的套路。...提前把所有预期的热数据加到缓存。定位热数据还是比较复杂的事情,需要根据自己的服务访问情况去评估。这个方案只能减轻缓存并发的发生次数不能全部抵制。 缓存加锁。...Read Through与之不同的是我们不需要在应用程序自己加载数据了,缓存层会帮忙做件事。

    749130

    关于缓存你需要知道的

    About Cache 作后端开发的同学,缓存是必备技能。这是你不需要花费太多的精力就能显著提升服务性能的灵丹妙药。前提是你得知道如何使用它,这样才能够最大限度发挥它的功效,并抑制其副作用。...我们在创建表的时候,并不会未所有的字段创建索引,这意味着如果我们需要读取非缓存数据就要从磁盘拿数据。这个过程至少需要十几毫秒的时间。而缓存往往是基于内存的,这要比DB读数据快两个数量级。...证明我们加缓存这件事的收益越高。 加缓存 如果你平时都用一些ORM工具很可能下边这些问题你不会直接遇到,不过这些问题都是在你加缓存之前需要着实想清楚的。算是一些通用的套路。...提前把所有预期的热数据加到缓存。定位热数据还是比较复杂的事情,需要根据自己的服务访问情况去评估。这个方案只能减轻缓存并发的发生次数不能全部抵制。 缓存加锁。...Read Through与之不同的是我们不需要在应用程序自己加载数据了,缓存层会帮忙做件事。

    83070

    关于Queue你需要知道的

    前言 平时我们在搬砖的过程中,难免会遇到如下问题:搬砖的人将砖送到垒砖人的手中后,再搬一块砖,如果垒砖的人还没垒完,那搬砖的人就需要等待垒砖的人垒完后才能递砖再进行下一次的搬砖。...为了解决这个问题,我们找到了一个推车,每次搬砖人都将搬来的砖放到推车中,然后垒砖的人就去推车中取,这样就避免了中间等待的时间,提高了搬砖的效率。...实际上这个例子中的推车就起到了消息队列的作用,今天我们就一起走进 Queue 的世界。 关于 Queue Queue 是 Python 内置的,线程安全的队列库。...问题:砖没垒完就结束 这是因为我们在代码中判断,当队列为空的时候就退出。当垒砖比搬砖快的时候就会出现这个问题。我们只需要在垒砖的代码中增加短暂的等待即可。...因为两个线程同时开始,在等待之前,第一次 get 就拿到了 100 优先级的砖,所以它被第一个垒。解决这个问题,我们只需要在垒砖前等待很短的时间即可(即等待搬砖完成)。

    38450

    收割 Offer 之前需要知道的

    现在发现有的事情,别人知道,你不知道,错过了就真错过了。所以本文分享一下经验。...要知道去年疫情挺严重,大部分人应该都封印在家里上网课呢,没有多少人想着去实习,因为我没回家,就钻了这么一个空子。...不要说感觉自己还没准备好,这都是借口,面试这东西也是需要练的,秋招大胆去投简历,大胆去面试,过不了又怎样?反正也没啥损失。 提前批是秋招的前奏,大概在每年的六七月份。...要知道每家企业都希望吸引人才,所以也内卷,正式秋招之前就开放招聘抢人,也就是提前批。...关于公司的信息,可以去天眼查看看: 为什么要查公司信息呢?如果能够进入像 BAT 这样的大厂,不太需要查公司,因为大公司不担心生存。你进了阿里,不可能说过两年阿里倒闭了,全员失业。

    35320

    有关JIT你需要知道的

    需要将字节码逐条翻译成对应的机器指令并且执行,这就是传统的JVM的解释器的功能,正是由于解释器逐条翻译并执行这个过程的效率低,引入了JIT即时编译技术。...解释器与编译器并存的优势 解释器与编译器两者各有优势 解释器:当程序需要迅速启动和执行的时候,解释器可以首先发挥作用,省去编译的时间,立即执行。...如何检测热点代码 判断一段代码是否是热点代码,是否需要触发即使编译,这样的行为称为热点探测,热点探测并不一定知道方法具体被调用了多少次,目前主要的热点探测判定方式有两种: 基于采样的热点探测:采用这种方法的虚拟机会周期性地检查各个线程的栈顶如果发现某个...:采用这种方法的虚拟机会为每个方法(甚至是代码块)建立计数器,统计方法的执行次数,如果次数超过一定的阈值就认为它是“热点方法” 优点:统计结果精确严谨 缺点:实现麻烦,需要为每个方法建立并维护计数器,不能直接获取到方法的调用关系...调整Code Cache大小 JIT编译的代码是存储在Code Cache中的,需要注意的是 Code Cache 是存在大小限制的,而且不会动态调整。

    1K50

    奇妙的NULL值,你知道多少

    NULL在数据库和编程语言中,存在的意义和附带的含义不同。       NULL这个概念,在数据库中产生的时候就存在异议。NULL值的意义现在主流的想法为:“未知值或不确定的值”。...至于是否应该被视为未知值或不确定的值,存在较大的争议。      NULL值在编程语言中的意思为“空的引用”,即变量只是申明了,但没有实例化,在内存中没有分配内存。...由于NULL值在编程语言和数据库中的含义存在差异,导致对NULL值很难把握,现在就来谈一下NULL值在数据库中的含义和在编程语言中的含义和用法。  ...一.NULL值在数据库中的含义与用法:     1.NULL值在数据库中的含义:         NULL值既不是为零,也不是空白,NULL值实际是指未知值或不确定值,缺少的数据。     ...3.数据类型中的NULL值意义:       (1).值类型:只要是可空值类型的值类型的值类型变量都可以包含NULL值;对于不可为空值的值类型,则有一个对应的可空值类型表示了和它相同的值的集合加上NULL

    2.4K50

    关于TCP协议我们需要知道的

    图片【摘要】 TCP协议是OSI模型中的传输层协议,用于建立和维护两个程序间的数据交换连接,以及通过Internet发送信息。TCP协议的主要特点包括面向连接、可靠性、流控制和拥塞控制。...关于这个协议的定义设计到的知识如下:TCP协议的基本概念和位置:TCP协议是位于OSI模型中的传输层,用于规定如何建立和维护两个程序间可以交换数据的连接,以及如何通过Internet发送信息。...TCP协议的主要特点:包括面向连接、可靠性、流控制和拥塞控制。TCP协议的面向连接特性:在数据传输之前需要先建立连接,并在数据传输完成后拆除该连接。...TCP协议的流控制特性:利用滑动窗口机制来控制数据发送方的发送速度,防止接收方因为无法处理过快的数据而导致数据丢失。...TCP协议的拥塞控制特性:通过一系列算法来控制数据发送方的发送速度,以避免网络拥塞问题的发生。TCP三次握手和四次挥手TCP协议的三次握手和四次挥手是建立和断开TCP连接的必要过程。

    20520

    关于HTTP,我们需要知道的事儿

    (2) 协商缓存 根据Etag(哈希值)判断是否缓存;服务端下发给客户端 last-modified,客户端获取后,下次请求带上 last-modified-since。...参考链接:https://github.com/kaola-fed/blog/issues/105 6.状态码 (1)重定向 301表示旧地址A的资源已经被永久地移除了(这个资源不可访问了),搜索引擎在抓取新内容的同时也将旧的网址换为重定向之后的网址...302表示旧地址A的资源还在(仍然可以访问),这个重定向只是临时地从旧地址A跳转到地址B,搜索引擎会抓取新的内容而保存旧的网址。 SEO 302好于301。...(2)网关 网关错误:502 扮演网关或者代理角色的服务器没有接收到来自上游服务器的正确响应。 网关超时:504 扮演网关或者代理角色的服务器没有及时响应。...请求的服务无法响应代理服务器的请求。 7.跨域 (1)CORS

    62620

    关于 ThreadLocal 你需要知道的几点

    一个类对象类型,提供属线程本地变量,也就是同一个变量对不同线程保存了不同的值,但是和线程自身定义的自属变量不同。 通常以私有静态类型定义,用以保存特定线程特定状态属性。...线程存活期间保持对ThreadLocal的弱引用,线程结束后,则变量会被垃圾回收器回收。...二、ThreadLocal使用 //定义一个ThreadLocal变量用以存储不同线程的ID ThreadLocal localVs = new ThreadLocal(); //线程list..., transport: 'socket' Thread-1: 13 Thread-0: 12 Thread-2: 14 Thread-4: 16 Thread-3: 15 三、ThreadLocal需要注意的地方...线程中使用ThreadLocal类型变量,在线程声明周期结束前调用ThreadLocal::remove()方法,清除对应本线程的变量内存占用,避免内存泄漏。

    35910

    IP分片报文:你需要知道的

    同样,每个Internet路径也受到单个IP报文所能传输的字节数的限制。这个约束被称为路径MTU (PMTU)。对于任意给定的路径,PMTU等于其链路mtu中的最小值。...分片的生成:发送端根据PMTU的大小将原始报文的IP协议载荷部分拆分成多个较小的片段,将每个片段都封装成一个数据包。...分片的重组:接收端根据报文的源IP、目的IP、IP标识将接收到的分片报文归为不同原始IP报文的分片报文;分片标志中的MF位(More Fragment)标识了该报文是否是最后一个分片报文,如果是最后一个分片报文...在高速率下,16位的IP标识字段不足以防止重复的id,从而导致频繁错误组装IP分片,而TCP和UDP的校验和也不足以防止由此产生的损坏的数据报被发送到上层协议。 IP分片的替代方案 1....因此,不需要IP分片。 2. 应用层解决方案 应用程序不应该发送导致IP报文超过到达目的地路径上的最大传输单元的UDP数据报。

    1.1K50

    关于远程分支你需要知道的

    关于远程分支你需要知道的 1. clone 时 git clone xxx.git 自动创建一个跟踪 origin/master 的 master 分支。...若 clone 的时候想跟踪别的分支: git clone -b yyy xxx.git 若分支远程不存在,则会报错: 2.创建新分支时 直接创建一个本地分支跟踪远程分支: git checkout.../ 由于此命令太常用,所以有个快捷方式: git checkout --track origin/xxx 则会自动创建一个本地 xxx 分支跟踪 origin/xxx,还有更进的捷径:比如你本地检出了一个本地不存在的分支...test 且远程刚好有一个与之对应的远程分支 origin/test,则会自动创建关联。...设置已有分支时 查看分支跟踪情况: git branch -vv 现在把 feature 的上游分支改为 test: git branch -u origin/test //or git branch

    32220

    前端研发需要知道的Docker

    你知道,有时候在本地开发环境中一切正常,但代码一到生产环境就出问题了。使用Docker,你可以创建一个与生产环境尽可能接近的容器,这样就可以减少“在我机器上可是好的”这类问题。简化团队协作。...想象一下,新同事加入项目,他们需要配置本地环境。传统方式可能需要安装各种依赖、设置数据库等等,这既费时又可能出错。...但有了Docker,他们只需要拉取一个镜像,运行一个容器,所有环境就配置好了,可以立即开始工作,这极大的降低了新同事介入工作的成本。...前端项目通常会依赖后端API或数据库等服务,甚至有时候还需要配置代理来解决本地开发跨域的问题,这些真的很头疼。...后端服务则直接使用一个已经存在的镜像,他不需要构建。一个docker-compose.yml可以只方一个服务都是OK的。

    1K32

    IP分片报文:你需要知道的

    同样,每个Internet路径也受到单个IP报文所能传输的字节数的限制。这个约束被称为路径MTU (PMTU)。对于任意给定的路径,PMTU等于其链路mtu中的最小值。...分片的生成:发送端根据PMTU的大小将原始报文的IP协议载荷部分拆分成多个较小的片段,将每个片段都封装成一个数据包。...分片的重组:接收端根据报文的源IP、目的IP、IP标识将接收到的分片报文归为不同原始IP报文的分片报文;分片标志中的MF位(More Fragment)标识了该报文是否是最后一个分片报文,如果是最后一个分片报文...在高速率下,16位的IP标识字段不足以防止重复的id,从而导致频繁错误组装IP分片,而TCP和UDP的校验和也不足以防止由此产生的损坏的数据报被发送到上层协议。IP分片的替代方案1....因此,不需要IP分片。2. 应用层解决方案应用程序不应该发送导致IP报文超过到达目的地路径上的最大传输单元的UDP数据报。

    78200

    关于AVOD, 你需要知道的事

    AVOD商业模式 AVOD的工作原理 AVOD的不同类型:CSAI和SSAI 什么是视频点播(VOD)? 点播是一种可以让用户随时随地观看视频的视频传输机制。...AVOD商业模式依赖大量用户观看视频并获得可行的广告收益。每1000次曝光,内容发布商才能获得几美元,为了获取可持续的收入,内容发布商需要吸引大量用户到自己的平台上。...太多广告或者糟糕的观看体验将使观众反感,进而离开你的平台。你必须平衡收益和让用户满意之间的关系。...当广告服务器获得来自客户端的请求,它便通过数据分析将正确的广告提供给特定的客户端并响应广告信息。接着视频播放器暂停视频,播放广告,然后恢复视频播放。...结语 由于观众人数的激增,对于观众的竞争加剧以及观众的选择增加,AVOD在接下来几年肯定前景光明。AVOD 一直是 VOD 新闻、体育和电影流媒体公司等的良好商业模式。

    1.7K20

    前端研发需要知道的 Docker(二)

    docker在前端上的思考先前,整理了下自己在 Docker 方面的研究,沉淀了两篇文章 ,前端研发需要知道的Docker 和 利用Docker轻松搭建全栈开发环境 总有那么一点意犹未尽的感觉,在第二篇评论里面...当然这个需要写一个 docker-compose.yml,参考下面的例子也 ok。...docker-compose up前后端分离开发: 如果前端和后端是分离的,你可以使用 Docker 同时运行前端和后端服务,而不需要在本地安装后端所需的所有依赖。.../frontend # 注意,这种build是指需要构建镜像的,因此,你的前端项目中也需要Dockfile ports: - "3000:3000" backend: build...,以进行自动化的跨浏览器测试,当然这个需要更具你的项目的要求来选择一些兼容性的版本来跑测试。

    94752

    你需要知道的http协议

    多部分对象集合 发送一份报文主体内可包含多类型实体 使用时需要在首部字段里添加:Content-type 包含的对象如下(content-type的值): multipart/form-data:web...首部字段的格式 首部字段名:字段值(可为多个) 单值:Content-Type: text/html 多值:Keep-Alive:timeout=15, max=100 首部字段重复,规范里没有明确规定如何处理...该方案的缺点: 需要客户端和服务器都有加密和解密机制 内容也有被篡改的风险 通信的加密:http协议中没有加密机制,通过和SSL,TLS组合使用,加密http的通信内容。...SSL客户端认证 借助客户端的证书完成认证 双因素认证方式:密码+证书。 使用率:客户端证书需要一定费用,尚未普及 5....状态的管理 http本身没有状态管理,每次请求并不知道上次请求内容 使用Cookie和Session作为状态管理,弥补了http的不足 六. WebSocket协议 1.

    66851
    领券