# HTTP HTTPS TLS/SSL https://www.youtube.com/watch?v=9a1x_uRzy2Q https://jeanboy.blog.csdn.net/article/details/76423436 https://www.youtube.com/watch?v=W9r3n2DFD64 https://nordvpn.com/zh-tw/blog/ssl-tls-bijiao/ HTTP超文本傳輸協定 超文本 是一個文本 但他是超文本 所以是文本加上一些影片圖片等 傳輸 是互通的 是應答也是請求方 協定是雙方要遵守的 但HTTP是明文 經過加密就變成HTTPS 加密有公鑰跟私鑰 https 必看 https://www.youtube.com/watch?v=67kItGjvRs0&ab_channel=ByteByteGo  其他非對稱都這樣做 先加密(摘要) 在簽名 單雙向 https://zhuanlan.zhihu.com/p/330393659 ## redis mysql  https://www.quanzhan.co/archives/572 ## range https://mp.weixin.qq.com/s?__biz=Mzg3OTYzMDkzMg==&mid=2247495472&idx=1&sn=bc73cba1c6a4075dddddc88fe270772b&chksm=cf03200bf874a91d3b ## chuck https://juejin.cn/post/7233196954402439226 ## 基本知識    ## http https://www.ruanyifeng.com/blog/2016/08/http.html ## http2 https://halfrost.com/http2-http-frames/ ## HTTP Keep-Alive and Websockets? https://stackoverflow.com/questions/7620620/whats-the-behavioral-difference-between-http-keep-alive-and-websockets ## 流程   所以先用hash(摘要) 對key 做簽名 然後當key沒問題後 之後連線都是用加密方式  ## HTTP 状态码 ``` 1. 状态码分类 - 1xx:信息,服务器收到请求,需要请求者继续操作 - 2xx:成功 - 3xx:重定向 - 4xx:客户端错误 - 5xx:服务端错误 2. 常用状态码 200:请求成功 301:永久重定向 302:临时移动 400 bad request:客户端请求语法错误 401 unauthorized:客户端没有权限 403 forbidden:服务器拒绝客户端请求 404 not found:客户端请求资源不存在 500 Internal Server Eerro:服务器内部错误 502 bad gateway:作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应 503 Service Unavailable 超载或系统维护 504 Gateway timeout:网关超时 3. 502 的原因及解决方法 原因:nginx将请求提交给网关(php-fpm)处理异常导致 1. fastcgi 缓冲区设置过小 fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; 2. php-cgi的进程数设置过少 查看FastCgi进程数:netstat -anpo | grep "php-cgi"| wc -l 调整参数最大子进程数:max_children 一般按照单个进程20M计算需要需要设置的子进程数 3. max_requests(内存溢出或频繁重启) 参数指明每个children最多能处理的请求数量,到达最大值之后会重启children。 设置过小可能导致频繁重启children: php将请求轮询给每个children,在大流量的场景下,每一个children 到达最大值的时间差不多,如果设置过小可能多个children 在同一时间关闭,nginx无法将请求转发给php-fpm,cpu降低,负载变高。 设置过大可能导致内存泄露 4. php执行时间超过nginx等待时间 fastcgi_connect_timeout fastcgi_send_timeout fastcgi_read_timeout 5. fastcgi执行时间 max_execution_time ``` ## 簡單介紹 現在協議都是TLS SSL已經過了 ## 詳細介紹 HTTP 是建立在 TCP 协议之上,所以 HTTP 协议的瓶颈及其优化技巧都是基于 TCP 协议本身的特性。 **HTTP 的缺点** 通信使用明文(不加密),内容可能会被窃听 不验证通信方的身份,因此有可能遭遇伪装 无法证明报文的完整性,所以有可能已遭篡改 ## HTTPS 的诞生 为了解决 HTTP 协议的以上缺点,在上世纪90年代中期,由网景(NetScape)公司设计了 SSL 协议。SSL 是“Secure Sockets Layer”的缩写,中文叫做“安全套接层”。.  ## 加密做法 https://www.youtube.com/watch?v=2JYT5f2isg4 ## 加密 “对称加密”与“非对称加密” 明文传输消息 “加密”和“解密” 通俗而言,你可以把“加密”和“解密”理解为某种【互逆的】数学运算。就好比“加法和减法”互为逆运算、“乘法和除法”互为逆运算。 “加密”的过程,就是把“明文”变成“密文”的过程;反之,“解密”的过程,就是把“密文”变为“明文”。在这两个过程中,都需要一个关键的东西——叫做“密钥”——来参与数学运算。 “对称加密”  所谓的“对称加密技术”,意思就是说:“加密”和“解密”使用【相同的】密钥。这个比较好理解。就好比你用 7zip 或 WinRAR 创建一个带密码(口令)的加密压缩包。当你下次要把这个压缩文件解开的时候,你需要输入【同样的】密码。在这个例子中,密码/口令就如同刚才说的“密钥”。 存在疑问:密钥怎么传输? 如果密钥可以安全的传输,那么消息也应该可以安全的传输,就像蛋生鸡,鸡生蛋一样。 “非对称加密”  所谓的“非对称加密技术”,意思就是说:“加密”和“解密”使用【不同的】密钥。当年“非对称加密”的发明,还被誉为“密码学”历史上的一次革命。 被劫持情况:  窃听者可以伪造服务器的公钥与客户端通讯,客户端以为是跟服务器通讯,其实是与窃听者在通讯,后果可想而知。 ## CA 证书 CA 是 PKI 系统中通信双方信任的实体,被称为可信第三方(Trusted Third Party,简称TTP)。 CA 证书,顾名思义,就是 CA 颁发的证书。 CA 的初始是为了解决上面非对称加密被劫持的情况,服务器申请 CA 证书时将服务器的“公钥”提供给 CA,CA 使用自己的“私钥”将“服务器的公钥”加密后(即:CA证书)返回给服务器,服务器再将“CA 证书”提供给客户端。一般系统或者浏览器会内置 CA 的根证书(公钥)  ## SSL SSL/TLS 加密可分為兩個階段:SSL/TLS 握手協議(SSL handshake)和 SSL/TLS 紀錄層, https://www.youtube.com/watch?v=-f4Gbk-U758 ### SSL 握手協議 1. SSL 握手是客戶端和伺服器之間的一種通訊形式。在這種通訊形式中,客戶端和伺服器會決定如何進行進一步的通訊。以下是 SSL 握手的方式: 1. 客戶端發出「hello」請求,並將客戶端支援的 SSL 版本和加密演算法發送給網頁伺服器。 1. 伺服器收到客戶端的「hello」請求,然後伺服器回傳「hello」到客戶端,並傳送 SSL 證書和公鑰,這裡的客戶端和伺服器用非對稱加密來交換安全資訊。這表示客戶端需要伺服器的公鑰來加密訊息,而伺服器需要公鑰和私鑰來解密訊息。任何窺探流量的人都無法破解傳輸的加密訊息。 1. 然後,客戶端使用伺服器的公鑰建造 pre-master secret,這是一個亂數,並將其發送到伺服器,以建造對話金鑰(session key),這會將通訊提升為對稱加密。目前這兩端只使用私鑰,對稱加密讓通訊速度更快,而且使用更少的資源。 1. 伺服器解密 pre-master secret,使用它建立金鑰並與客戶端交換。藉由對稱加密的建立,雙方現在可以交換加密訊息,網站的傳輸是安全的。 ### SSL/TLS 紀錄層 這個階段會傳輸加密資料,數據從用戶應用程式發送並加密。根據加密演算法的不同,數據可能會被壓縮。然後加密訊息會被發送到網路傳輸層,該層會決定如何將數據發送到目標設備。 ###### tags: `觀念重點區`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up