
Http
文章平均质量分 85
Wang's Blog
Keep learning for the innovation era.
展开
-
关于HTTP和HTTPS安全
窃听了什么HTTP篡改案例中间人攻击证书机制关于HTTPS证书案例申请证书具体演示示例在nodejs中部署一个HTTPS服务等价于用nodejs原生实现这样,我们要处理https,只需要引入https的模块然后,我们访问https://localhost:1522, 显示一个错误:localhost使用了一个不受支持的协议这时候,就要求我们将证书放进去,我们可以在项目目录新建一个目录:cert,将刚才的三个文件放进去这时候,我们需要把两个证书文件合并,新建一个fullchain.crt文件,原创 2022-06-10 23:38:25 · 831 阅读 · 0 评论 -
关于HTTP2以及使用Nginx来部署一个HTTP2的服务
HTTP2相较与HTTP1.1的优势能够进行信道复用分帧传输每一帧都有一个上下文的联系我们传输的HTTP请求的数据不一定要按照连续的顺序发送分成不同的帧,然后一起进行发送数据接收完成之后,根据帧信息的顺序进行组合最后拿到完整的数据因为分帧传输,可以在同一个链接上可以并发的发送不同的请求Server Push在传统的HTTP协议中都是客户端主动,服务端被动而在HTTP2中,可以让服务端变被动为主动可以直接向客户端推送内容程序示例test.html<img s原创 2022-03-15 23:20:21 · 4610 阅读 · 0 评论 -
关于HTTPS以及使用Nginx来部署一个HTTPS的服务
HTTPSHTTPS = HTTP + SecurityHTTP是不安全的,因为它是明文传输的,在互联网的每一层都可能会被获取和篡改如果使用HTTP,不能传输重要的数据HTTPS的安全性公钥:互联网上人人都可以拿到的一串加密字符串,用于加密传输信息私钥:只存在于服务端用于解密的一串加密字符串客户端通过公钥加密传输到服务器上,服务端只有通过私钥才能把加密后的内容解密HTTPS握手的过程 客户端发起一个ClientHello先生成一个随机字符串再带原创 2022-03-14 21:08:20 · 4487 阅读 · 0 评论 -
基于HTTP的Nginx代理配置和代理缓存
Nginx配置代理缓存使用proxy_cache_path来配置一个cache, 示例proxy_cache_path cache levels=1:2 keys_zone=my_cache:10m这里的 cache 是缓存文件的路径windows使用相对路径,为nginx安装目录下mac可以设置自己的路径,如/var/cache/你的目录levels 表示是否要创建多级文件夹因为cache目录声明之后会用于很多代理服务器默认所有代理会存在于一个目录中导致查找速度变慢分级文件原创 2022-03-13 22:38:12 · 5138 阅读 · 0 评论 -
基于HTTP的Nginx安装和基础配置
Nginx的安装我们有了很多语言的后端服务,为什么还需要Nginx呢?Nginx是目前使用最多的Web服务器,主要实现的是HTTP的相关功能Nginx是一个非常纯粹的HTTP协议实现的服务,并不针对业务逻辑的开发Nginx的主要功能是用于HTTP的代理,主要提供:load balancing, caching, cloud deployments等功能可使用lua来扩展相关功能windows平台下载地址:https://nginx.org/en/download.htmlmac平台安装:通过原创 2022-03-09 20:22:24 · 1525 阅读 · 0 评论 -
关于HTTP中的CSP(Content-Security-Policy)内容安全策略
关于HTTP中的CSP在HTTP协议中为了使我们的网站足够的安全,经常要用到CSP(Content-Security-Policy)内容安全策略CSP的作用限制网站中资源的获取,以及请求发送到哪里报告资源获取越权CSP的限制方式default-src限制全局和链接请求有关的东西指定资源类型connect-srcmanifest-srcimg-srcfont-srcmedia-srcstyle-srcframe-srcscript-src网页上和链接有关的…原创 2022-03-08 23:07:00 · 5741 阅读 · 0 评论 -
关于HTTP中的Redirect重定向
关于HTTP中的Redirect重定向当我们通过一个url去访问一个路径的时候,资源可能已经不在了服务器要告诉浏览器请求的资源在哪个地方,这时候就会用到Redirect重定向如果我们已经指定某个资源对应一个url,当你搬动资源后,不能直接废弃这个url废弃之后,直接会返回404资源不存在了,你应该告诉浏览器资源在哪里,也就是重定向程序示例server.jsconst http = require('http');http.createServer((req, res) =>原创 2022-03-08 00:24:09 · 1371 阅读 · 0 评论 -
关于HTTP中的数据协商
关于数据协商在客户端发送给服务端一个请求的时候,客户端会声明通过这个请求拿到的数据格式以及数据相关的一些限制要求服务端会有很多不同类型的数据返回,它会根据请求的这个声明做出一个判断,根据请求头信息来区分返回数据分类请求1 ) 客户端请求中通过Accept来声明我想要什么样的数据,Accept指定数据类型这个数据类型会根据MineType的声明进行一个限制, 来告诉服务端想要的数据类型2 ) 通过Accept-Encoding代表数据是一个怎样的编码方式来进行传输主要用来限制服务端如何来原创 2022-02-23 22:33:47 · 541 阅读 · 0 评论 -
关于HTTP中的Connection长连接
关于HTTP的ConnectionHTTP的请求是在TCP的链接上发送的TCP的链接又分为长连接,短链接HTTP的请求要先去创建一个TCP的链接然后在TCP的链接上将HTTP的请求发送并且接受完返回这时候一次HTTP请求已经结束了,浏览器和服务端就会考虑是否关闭这个TCP链接如果不关闭,这个TCP链接就会一直开着,就会有一定的消耗如果接下去还有请求,可以直接在这个TCP链接上发送,就不需要进行三次握手来创建链接的消耗如果直接关闭,代表了下次请求的时候,又要去重新创建链接,这就会有一个网络延原创 2022-02-17 21:42:48 · 3917 阅读 · 0 评论 -
关于HTTP中的Cookie和Session的使用
关于cookiecookie是服务端返回数据的时候通过Set-Cookie的Header设置到浏览器上的内容浏览器在保存了cookie之后,在下一次同源(协议,域名,端口三者一致)请求的时候,自动带上结合服务端的session以此实现用户访问和权限验证cookie是键值对,可以设置多个值cookie的属性max-age和expires来控制设置过期的时间Secure只在https的时候才会携带和发送设置HttpOnly就无法通过document.cookie来访问了只能由服务端来读取原创 2022-02-16 23:45:00 · 1643 阅读 · 0 评论 -
关于HTTP缓存验证Last-Modified和Etag的使用
关于资源验证如果给Cache-Control设置no-cache之后,每次浏览器发起对设置了Cache-Control的资源请求的时候都要去到服务器端进行一个资源的验证, 验证如果资源可以使用,那么才会读取本地的缓存缓存验证流程1 ) 浏览器创建了一个请求, 首先请求到达的地方是在本地缓存, 当然是建立在有Cache-Control头的情况下如果在本地缓存里查找,如果找到,则直接返回给浏览器渲染页面这种情况下, 不会经过任何网络的传输,也就是from memory cache的效果原创 2022-02-15 20:56:02 · 3939 阅读 · 3 评论 -
关于HTTP缓存Cache-Control
关于Cache-Control的特性可缓存性代表http请求返回的内容所经过的任何路径中, 包括中间的http代理服务器, 以及发出请求的客户端浏览器都可以对返回内容进行缓存的操作,也就是把这份数据存在本地,下一次可以直接读取而非重新获取网络中有很多代理服务器和发起的客户端都可以进行缓存的操作,它的可缓存性就是指那些地方可以执行缓存操作public:表示任何地方都可以进行缓存private:表示发起请求的浏览器才可以进行缓存no-cache:不表示不缓存,实际上,在每次请求中使用任何缓存响应原创 2022-02-14 23:22:32 · 2723 阅读 · 0 评论 -
关于HTTP跨域请求的预请求和更多配置
关于跨域请求的其他限制并不是所有情况的跨域都可以设置Access-Control-Allow-Origin头我们还是通过例子来说明自定义的头信息1 ) 准备程序server1.jsconst http = require('http');const fs = require('fs');http.createServer((req, res) => { console.log('req come: ', req.url); const html = fs.re原创 2022-02-10 20:33:39 · 966 阅读 · 0 评论 -
HTTP客户端和基本的跨域问题
从HTTP客户端说起1 ) 浏览器General 表示HTTP的首行Response Headers 表示响应内容Request Headers 表示请求内容2 ) curl工具用于测试,非浏览器工具curl baidu.comcurl www.baidu.comcurl -v www.baidu.com3 ) 其他发送http的工具, 如爬虫程序、微信开发工具等实现了发送HTTP请求报文的工具都属于HTTP客户端关于跨域请求1 ) 准备程序server1原创 2022-02-09 20:46:17 · 970 阅读 · 0 评论 -
HTTP的三次握手,URI,URL,URN,HTTP报文,方法和状态码
在客户端和服务器进行一个http请求的时候, 在发送和返回的过程中需要建立一个TCP connection的东西在HTTP中是不存在连接这样的概念,只有请求和响应,这些都是数据包,它们需要经过一个传输的通道这个通道就是在TCP中创建的这么一个连接, 这个连接是可以一直保持的, HTTP请求是在这个连接的基础上去发送的原创 2022-02-08 23:59:58 · 1020 阅读 · 0 评论 -
网络协议分层和HTTP协议的发展历史
关于网络协议分层熟悉网络协议分层模型可以更好的理解HTTP协议网络协议有一个经典的五层模型,从低级到高级如下物理层数据链路层网络层传输层eg: TCP, UDP应用层eg: HTTP, FTP不管是客户端还是服务器都遵循这个模型以此来维护网络传输过程的我们的HTTP协议是在应用层上实现的,但它要基于传输层中非常重要的一个协议:TCP/IP协议TCP/IP协议是网络模型中最重要的一个协议,在应用中比如创建一个HTTP服务,FTP服务,Email服务这些服务都是基于原创 2022-02-07 23:39:43 · 1088 阅读 · 0 评论 -
理解HTTP协议的重要性
很多搞了多年开发的研发人员可能都不会对HTTP有太深入的理解生活中的HTTP应用:通过url打开网页,ajax获取数据,img加载图片等HTTP status code, HTTP method有多少种,有多少人知道的比较清楚HTTP的优化有多少种?举一个例子,缓存优化如何优化,客户端缓存,代理服务器缓存,以及缓存验证可用性等1 ) 关于Cache-Control的例子这个可以设置"Cache-Control:max-age=100"对应的静态资源缓存100s还可以给它设置public、pr.原创 2022-02-05 21:25:31 · 1090 阅读 · 0 评论