Kinboy's note

前端漫记


  • Home

  • About

  • Tags

  • Categories

  • Archives

  • Top

  • Search

关于HTTP的请求、响应以及 CURL 工具介绍

Posted on 2018-10-23 | In FE , HTTP |
Words count in article: 2.4k | Reading time ≈ 11

在像 HTTP 这样的客户端 - 服务器协议中,会话一般包含三个部分:

  1. 客户端建立 TCP 连接(或者如果传输层不是 TCP 的话就是某种适当的连接)。
  2. 客户端发送请求,并等待服务器应答
  3. 服务器处理请求,回送应答,提供状态码和适当的数据。

对于 HTTP/1.1来说,在完成第三步以后,连接不再被关闭,客户端可以立刻发起进一步的请求:这意味着第二、三两步现在可以执行任意次。即连接的复用。

Read more »

HTTP Request

Posted on 2018-10-23 | In 翻译 , FE , HTTP |
Words count in article: 2.7k | Reading time ≈ 13

翻译原文:Request

Request

A request message from a client to a server includes, within the first line of that message, the method to be applied to the resource, the identifier of the resource, and the protocol version in use.

一个从客户端发送到服务器的请求消息的行首(请求的第一行)中包括了,操作资源的method方法(GET/POST/PUT等),资源标识符(即URI),以及使用的协议版本(HTTP/1.1,HTTP/1.2等)。

完整的请求消息结构如下,包含了4个部分:行首,请求头,换行,消息体

1
2
3
4
5
6
Request       = Request-Line              ; 行首(1)
*(( general-header ; 通用头部(2)
| request-header ; 请求头部(2)
| entity-header ) CRLF) ; 实体头部(2)
CRLF ; 请求头与消息体之间有换行(3)
[ message-body ] ; 消息体(4)
Read more »

一个 JavaScript 可选参数的安全隐患

Posted on 2018-10-19 | In FE , JavaScript |
Words count in article: 2.4k | Reading time ≈ 8

​ 这显然是个棘手的问题,可能大多数程序员会认为这个表达式会返回一个类似 [1,2,3] 的数组,如果你在浏览器中输入上面的表达式回车后,就会看到实际返回的是 [1, NaN, NaN] 。

​ 解释如下,parseInt 作为 JavaScript 的内置函数,试图将一个字符串转换为数值,并返回该数值。所以,一个这样的调用:

1
const n = parseInt('123');

​ 应该将数值 123 赋给变量 n。

​ 你应该知道,当遇到字符串无法转换为数值的时候,parseInt 方法会返回 NaN ,NaN 是 Not a Number 的缩写,通常意味着出现了某种数值计算错误。所以,一个这样的表达式:

1
const x = parseInt('xyz');

​ 会将 NaN 赋值给变量 x。

Read more »

NGINX: Proxy folders to different root

Posted on 2018-10-17 | In 翻译 , FE , NGINX |
Words count in article: 282 | Reading time ≈ 1

原文: NGINX: Proxy folders to different root


这篇教程教你在 Nginx 中将站点的不同目录设置成不同的反向代理站点的根目录。

默认情况下,假设有一个设置了 proxy_pass 的 location 区块,这个 location 区块匹配的是一个目录,例如 /nagios ,访问这个目录将跳转到代理服务器:

1
2
3
4
5
6
7
8
location /nagios/ {
proxy_pass http://10.0.21.8:80/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;
}

当在浏览器中访问的时候,上面的配置会将你的请求发送到 http://10.0.21.8/nagios/ ,因为这就是 Nginx location 的默认行为。然而如果你想要浏览器转发请求到 http://10.0.21.8/ ,你要么 rewrite URL 要么就使用 / location。

Read more »

Nginx-Windows版开启支持TLSv1.2

Posted on 2018-10-17 | In FE , NGINX |
Words count in article: 435 | Reading time ≈ 1

微信小程序要求使用 https 发送请求,并且 TLS(传输层安全协议)的版本至少为 1.2,在配置好 https之后,如果 TLS 的版本较低,就涉及到升级问题

从申请免费证书到配置 Nginx HTTPS 配置,有一篇比较完整的教程:微信小程序Server端环境配置

Linux 下配置的教程有很多,这里记录一下 Windows 中的配置过程,公司的 Nginx 跑在 Windows Server 上。

  • 操作系统:Windows Server 2008 R2
  • Nginx版本:ngixn/1.12.2 for Windows
  • 证书:腾讯云管理后台用 TrustAsia 签发的免费证书,有效期一年

当前 Nginx 配置中,Https 有关的配置:

1
2
3
4
5
6
7
8
ssl_certificate      1_gis.wohitech.com_bundle.crt;
ssl_certificate_key 2_gis.wohitech.com.key;

ssl on;

ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
Read more »

迁移Jenkins作业到新的Jenkins服务器

Posted on 2018-10-15 | In 架构 |
Words count in article: 880 | Reading time ≈ 3

最近在公司搭建 Jenkins 持续集成环境,要将测试环境中配置的 Jenkins 作业导入到正式环境中,上网找了下资料,大概有三种可行的方案:

  1. 拷贝作业文件夹
  2. 用Jenkins插件
  3. 用Jenkins cli 命令

有更好的办法欢迎交流。

Read more »

使用 CORS (跨域资源共享)

Posted on 2018-10-14 | In 翻译 , FE , CORS |
Words count in article: 7.6k | Reading time ≈ 36

原文:Using CORS

Introduction | 介绍

APIs are the threads that let you stitch together a rich web experience. But this experience has a hard time translating to the browser, where the options for cross-domain requests are limited to techniques like JSON-P(which has limited use due to security concerns) or setting up a custom proxy (which can be a pain to set up and maintain).

API 是让你将丰富的 web 体验拼接在一起的纽带。但是在过去,跨域请求被限制只能在一些技术上使用的时候,例如 JSON-P(出于安全考虑,使用上有诸多限制)或者设置自定义代理(难于设置和维护),这些体验是很难在浏览器中实现的。

Cross-Origin Resource Sharing (CORS) is a W3C spec that allows cross-domain communication from the browser. By building on top of the XMLHttpRequest object, CORS allows developers to work with the same idioms as same-domain requests.

跨源资源共享 (CORS)是一个 W3C 规范,允许浏览器跨域通信。建立在 XMLHttpRequest 对象之上,CORS 允许开发者使用与同域请求相同的语法。

Read more »

从Linux系统中恢复最近误删的文件

Posted on 2018-10-13 | In Linux |
Words count in article: 1.1k | Reading time ≈ 4

​ 谁都会有手抖的时候,晚上远程公司的ArchLinux时不小心 sudo rm -rf Desktop 了一下,然后开始尝试恢复误删文件。

google了一篇恢复的教程:PhotoRec – Recover Deleted or Lost Files in Linux

​ 当我们不小心用 shift + delete ,删除选项,或者清空回收站的方式删除了文件的时候,文件的内容实际上并没有被从硬盘上擦除。系统只是简单的将这些文件从目录结构中移除了,所以在被删的文件夹下看不到删除的文件了,但是他们实际上仍然保存在硬盘上被删除的位置上。

​ 只要具备了正确的工具和知识,你就可以将他们从电脑上恢复出来。但是如果你从硬盘上恢复更多文件时,最近被删除的文件可能会被覆盖,导致你可能拿不到最近删除的文件。

Read more »

NPM package.json 中的 tilde (~) 和 caret (^)

Posted on 2018-10-12 | In FE , 工程化 |
Words count in article: 248 | Reading time ≈ 1

原文:What’s the difference between a tilde (~) and a caret (^) in a npm package.json file?

如果你用 npm 来管理 JavaScript 应用程序的 package ,那你应该熟悉 package.json 文件了。

1
2
3
4
5
{
"devDependencies": {
"ember-cli": "~2.14.0"
}
}

语法是 JSON 格式,key 是 package 的名称,value 是要使用的这个 package 的版本号。

Read more »

Archlinux安装Realtek-8812AU无线网卡驱动

Posted on 2018-10-12 | In Linux |
Words count in article: 910 | Reading time ≈ 4

​ 在公司台式机上装了Arch Linux,自己的笔记本用Windows,用Synergy共享键鼠,由于网口有限,台式机接有线,笔记本连wifi,不在一个网段内,公司网络不稳定,Synergy时不时会断开连接,于是就想把手里的Realtek-8812AU(后面简称无线网卡)用在台式机上,这样台式机和笔记本都连wifi,出问题的概率应该会小一点。

Read more »
1…4567
kinboy

kinboy

66 posts
31 categories
52 tags
RSS
GitHub E-Mail
0%
© 2019 kinboy

鄂公网安备 42011102002861号