learn.lianglianglee.com/专栏/透视HTTP协议/index.html
2022-08-14 03:40:33 +08:00

212 lines
14 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<!-- saved from url=(0046)https://kaiiiz.github.io/hexo-theme-book-demo/ -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no">
<link rel="icon" href="/static/favicon.png">
<title>note-submit</title>
<!-- Spectre.css framework -->
<link rel="stylesheet" href="/static/index.css">
<!-- theme css & js -->
<meta name="generator" content="Hexo 4.2.0">
</head>
<body>
<div class="book-container">
<div class="book-sidebar">
<div class="book-brand">
<a href="/">
<img src="/static/favicon.png">
<span>技术文章摘抄</span>
</a>
</div>
<div class="book-menu uncollapsible">
<ul class="uncollapsible">
<li><a href="/" class="current-tab">首页</a></li>
</ul>
<ul class="uncollapsible">
<li><a href="../">上一级</a></li>
</ul>
<ul class="uncollapsible">
<li>
<a href="/PDF">PDF</a>
</li>
<li>
<a href="/专栏">专栏</a>
</li>
<li>
<a href="/恋爱必修课">恋爱必修课</a>
</li>
<li>
<a href="/文章">文章</a>
</li>
<li>
<a href="/极客时间">极客时间</a>
</li>
</ul>
</div>
</div>
<div class="sidebar-toggle" onclick="sidebar_toggle()" onmouseover="add_inner()" onmouseleave="remove_inner()">
<div class="sidebar-toggle-inner"></div>
</div>
<script>
function add_inner() {
let inner = document.querySelector('.sidebar-toggle-inner')
inner.classList.add('show')
}
function remove_inner() {
let inner = document.querySelector('.sidebar-toggle-inner')
inner.classList.remove('show')
}
function sidebar_toggle() {
let sidebar_toggle = document.querySelector('.sidebar-toggle')
let sidebar = document.querySelector('.book-sidebar')
let content = document.querySelector('.off-canvas-content')
if (sidebar_toggle.classList.contains('extend')) { // show
sidebar_toggle.classList.remove('extend')
sidebar.classList.remove('hide')
content.classList.remove('extend')
} else { // hide
sidebar_toggle.classList.add('extend')
sidebar.classList.add('hide')
content.classList.add('extend')
}
}
function open_sidebar() {
let sidebar = document.querySelector('.book-sidebar')
let overlay = document.querySelector('.off-canvas-overlay')
sidebar.classList.add('show')
overlay.classList.add('show')
}
function hide_canvas() {
let sidebar = document.querySelector('.book-sidebar')
let overlay = document.querySelector('.off-canvas-overlay')
sidebar.classList.remove('show')
overlay.classList.remove('show')
}
</script>
<div class="off-canvas-content">
<div class="columns">
<div class="column col-12 col-lg-12">
<div class="book-navbar">
<!-- For Responsive Layout -->
<header class="navbar">
<section class="navbar-section">
<a onclick="open_sidebar()">
<i class="icon icon-menu"></i>
</a>
</section>
</header>
</div>
<div class="book-content"
style="max-width: 960px; margin: 0 auto; overflow-x: auto; overflow-y: hidden;">
<div class="book-post">
<p id="tip" align="center"></p>
<div><!--add content-->
<h1>透视HTTP协议</h1>
<ul>
<li><a href = '\专栏\透视HTTP协议\00 开篇词To Be a HTTP Hero.md.html'>00 开篇词To Be a HTTP Hero</a></li>
<li><a href = '\专栏\透视HTTP协议\01 时势与英雄HTTP的前世今生.md.html'>01 时势与英雄HTTP的前世今生</a></li>
<li><a href = '\专栏\透视HTTP协议\02 HTTP是什么HTTP又不是什么.md.html'>02 HTTP是什么HTTP又不是什么</a></li>
<li><a href = '\专栏\透视HTTP协议\03 HTTP世界全览与HTTP相关的各种概念.md.html'>03 HTTP世界全览与HTTP相关的各种概念</a></li>
<li><a href = '\专栏\透视HTTP协议\04 HTTP世界全览与HTTP相关的各种协议.md.html'>04 HTTP世界全览与HTTP相关的各种协议</a></li>
<li><a href = '\专栏\透视HTTP协议\05 常说的“四层”和“七层”到底是什么?“五层”“六层”哪去了?.md.html'>05 常说的“四层”和“七层”到底是什么?“五层”“六层”哪去了?</a></li>
<li><a href = '\专栏\透视HTTP协议\06 域名里有哪些门道?.md.html'>06 域名里有哪些门道?</a></li>
<li><a href = '\专栏\透视HTTP协议\07 自己动手搭建HTTP实验环境.md.html'>07 自己动手搭建HTTP实验环境</a></li>
<li><a href = '\专栏\透视HTTP协议\08 键入网址再按下回车,后面究竟发生了什么?.md.html'>08 键入网址再按下回车,后面究竟发生了什么?</a></li>
<li><a href = '\专栏\透视HTTP协议\09 HTTP报文是什么样子的.md.html'>09 HTTP报文是什么样子的</a></li>
<li><a href = '\专栏\透视HTTP协议\10 应该如何理解请求方法?.md.html'>10 应该如何理解请求方法?</a></li>
<li><a href = '\专栏\透视HTTP协议\11 你能写出正确的网址吗?.md.html'>11 你能写出正确的网址吗?</a></li>
<li><a href = '\专栏\透视HTTP协议\12 响应状态码该怎么用?.md.html'>12 响应状态码该怎么用?</a></li>
<li><a href = '\专栏\透视HTTP协议\13 HTTP有哪些特点.md.html'>13 HTTP有哪些特点</a></li>
<li><a href = '\专栏\透视HTTP协议\14 HTTP有哪些优点又有哪些缺点.md.html'>14 HTTP有哪些优点又有哪些缺点</a></li>
<li><a href = '\专栏\透视HTTP协议\15 海纳百川HTTP的实体数据.md.html'>15 海纳百川HTTP的实体数据</a></li>
<li><a href = '\专栏\透视HTTP协议\16 把大象装进冰箱HTTP传输大文件的方法.md.html'>16 把大象装进冰箱HTTP传输大文件的方法</a></li>
<li><a href = '\专栏\透视HTTP协议\17 排队也要讲效率HTTP的连接管理.md.html'>17 排队也要讲效率HTTP的连接管理</a></li>
<li><a href = '\专栏\透视HTTP协议\18 四通八达HTTP的重定向和跳转.md.html'>18 四通八达HTTP的重定向和跳转</a></li>
<li><a href = '\专栏\透视HTTP协议\19 让我知道你是谁HTTP的Cookie机制.md.html'>19 让我知道你是谁HTTP的Cookie机制</a></li>
<li><a href = '\专栏\透视HTTP协议\20 生鲜速递HTTP的缓存控制.md.html'>20 生鲜速递HTTP的缓存控制</a></li>
<li><a href = '\专栏\透视HTTP协议\21 良心中间商HTTP的代理服务.md.html'>21 良心中间商HTTP的代理服务</a></li>
<li><a href = '\专栏\透视HTTP协议\22 冷链周转HTTP的缓存代理.md.html'>22 冷链周转HTTP的缓存代理</a></li>
<li><a href = '\专栏\透视HTTP协议\23 HTTPS是什么SSLTLS又是什么.md.html'>23 HTTPS是什么SSLTLS又是什么</a></li>
<li><a href = '\专栏\透视HTTP协议\24 固若金汤的根本(上):对称加密与非对称加密.md.html'>24 固若金汤的根本(上):对称加密与非对称加密</a></li>
<li><a href = '\专栏\透视HTTP协议\25 固若金汤的根本(下):数字签名与证书.md.html'>25 固若金汤的根本(下):数字签名与证书</a></li>
<li><a href = '\专栏\透视HTTP协议\26 信任始于握手TLS1.2连接过程解析.md.html'>26 信任始于握手TLS1.2连接过程解析</a></li>
<li><a href = '\专栏\透视HTTP协议\27 更好更快的握手TLS1.3特性解析.md.html'>27 更好更快的握手TLS1.3特性解析</a></li>
<li><a href = '\专栏\透视HTTP协议\28 连接太慢该怎么办HTTPS的优化.md.html'>28 连接太慢该怎么办HTTPS的优化</a></li>
<li><a href = '\专栏\透视HTTP协议\29 我应该迁移到HTTPS吗.md.html'>29 我应该迁移到HTTPS吗</a></li>
<li><a href = '\专栏\透视HTTP协议\30 时代之风HTTP2特性概览.md.html'>30 时代之风HTTP2特性概览</a></li>
<li><a href = '\专栏\透视HTTP协议\31 时代之风HTTP2内核剖析.md.html'>31 时代之风HTTP2内核剖析</a></li>
<li><a href = '\专栏\透视HTTP协议\32 未来之路HTTP3展望.md.html'>32 未来之路HTTP3展望</a></li>
<li><a href = '\专栏\透视HTTP协议\33 我应该迁移到HTTP2吗.md.html'>33 我应该迁移到HTTP2吗</a></li>
<li><a href = '\专栏\透视HTTP协议\34 Nginx高性能的Web服务器.md.html'>34 Nginx高性能的Web服务器</a></li>
<li><a href = '\专栏\透视HTTP协议\35 OpenResty更灵活的Web服务器.md.html'>35 OpenResty更灵活的Web服务器</a></li>
<li><a href = '\专栏\透视HTTP协议\36 WAF保护我们的网络服务.md.html'>36 WAF保护我们的网络服务</a></li>
<li><a href = '\专栏\透视HTTP协议\37 CDN加速我们的网络服务.md.html'>37 CDN加速我们的网络服务</a></li>
<li><a href = '\专栏\透视HTTP协议\38 WebSocket沙盒里的TCP.md.html'>38 WebSocket沙盒里的TCP</a></li>
<li><a href = '\专栏\透视HTTP协议\39 HTTP性能优化面面观.md.html'>39 HTTP性能优化面面观</a></li>
<li><a href = '\专栏\透视HTTP协议\40 HTTP性能优化面面观.md.html'>40 HTTP性能优化面面观</a></li>
<li><a href = '\专栏\透视HTTP协议\结束语 做兴趣使然的Hero.md.html'>结束语 做兴趣使然的Hero</a></li>
</ul>
</div>
</div>
<div>
</div>
</div>
</div>
</div>
</div>
<a class="off-canvas-overlay" onclick="hide_canvas()"></a>
</div>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194"
integrity="sha512-Gi7xpJR8tSkrpF7aordPZQlW2DLtzUlZcumS8dMQjwDHEnw9I7ZLyiOj/6tZStRBGtGgN6ceN6cMH8z7etPGlw=="
data-cf-beacon='{"rayId":"70996b2f083d3d60","version":"2021.12.0","r":1,"token":"1f5d475227ce4f0089a7cff1ab17c0f5","si":100}'
crossorigin="anonymous"></script>
</body>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-NPSEEVD756"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-NPSEEVD756');
var path = window.location.pathname
var cookie = getCookie("lastPath");
console.log(path)
if (path.replace("/", "") === "") {
if (cookie.replace("/", "") !== "") {
console.log(cookie)
document.getElementById("tip").innerHTML = "<a href='" + cookie + "'>跳转到上次进度</a>"
}
} else {
setCookie("lastPath", path)
}
function setCookie(cname, cvalue) {
var d = new Date();
d.setTime(d.getTime() + (180 * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toGMTString();
document.cookie = cname + "=" + cvalue + "; " + expires + ";path = /";
}
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i].trim();
if (c.indexOf(name) === 0) return c.substring(name.length, c.length);
}
return "";
}
</script>
</html>