惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Security Latest
Security Latest
Recent Commits to openclaw:main
Recent Commits to openclaw:main
O
OpenAI News
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
L
LINUX DO - 最新话题
N
News | PayPal Newsroom
S
Secure Thoughts
The Last Watchdog
The Last Watchdog
Help Net Security
Help Net Security
V2EX - 技术
V2EX - 技术
W
WeLiveSecurity
T
The Exploit Database - CXSecurity.com
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Hacker News - Newest:
Hacker News - Newest: "LLM"
博客园_首页
博客园 - 司徒正美
The Cloudflare Blog
D
DataBreaches.Net
Jina AI
Jina AI
L
LINUX DO - 热门话题
宝玉的分享
宝玉的分享
Project Zero
Project Zero
量子位
Spread Privacy
Spread Privacy
Cisco Talos Blog
Cisco Talos Blog
J
Java Code Geeks
T
Troy Hunt's Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
N
News and Events Feed by Topic
PCI Perspectives
PCI Perspectives
Hugging Face - Blog
Hugging Face - Blog
T
Threat Research - Cisco Blogs
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Threatpost
阮一峰的网络日志
阮一峰的网络日志
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tailwind CSS Blog
AI
AI
C
CXSECURITY Database RSS Feed - CXSecurity.com
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell
Apple Machine Learning Research
Apple Machine Learning Research
Attack and Defense Labs
Attack and Defense Labs
V
V2EX
人人都是产品经理
人人都是产品经理
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
有赞技术团队
有赞技术团队
博客园 - 三生石上(FineUI控件)
Cyberwarzone
Cyberwarzone

博客园 - 维生素C.NET

asp.net 3.5 extensions readme Vista上无法使用WCF的处理方法 SQL Server 2005 Management Studio假死的情况 Internal .Net Framework Data Provider error 6 查找含有特定字符的存储过程 firefox, IE6, IE7在CSS hack上的入口点 不知道多少人存在这个误解: Google Reader/Google Notebook使用以前的英文界面的办法 编译IronRuby项目和修复其中的一些bugs IronRuby博客中文版-- IronRuby: a promising start IronRuby的下载 http的基础知识帮助减少代码量和复杂度的一个Demo - 维生素C.NET - 博客园 关于SQL Server的两个细节 为LINQ提速的i4o和增强功能的SLINQ 在Longhorn Server上无法安装SQL Server 2008 (Katmai) 设置Longhorn Server中的图片缩略图显示 关于控件部分的看法--读Programming ASP.NET中文版 分享一本入门级好书:Programming ASP.NET中文版 555,又丢了一辆自行车
[ie8特性1] 6个conection per domain的设计
维生素C.NET · 2008-03-12 · via 博客园 - 维生素C.NET

作为www的传输协议,HTTP很简单:client与remote server建立connection,然后发送request,server处理这个request,返回response,然后关闭这个connection。

但是这个如此简单的过程存在着一些问题:

先看request:

GET /index.html HTTP/1.0 /*表明动作是GET,要获取的东东是/index.html*/
Accept: text/plain /*这里可以有n多的headers,在rfc822里有说明*/
Accept: text/html
Accept: */*
User-Agent: OnlyVC-1.0 /*客户端的实现名称*/
server给出response:
HTTP/1.0 200 OK
Server: MDMA/0.1
MIME-version: 1.0
Content-type: text/html
Last-Modified: Tue Mar 11 00:25:33 2008
Content-Length: 2003
/*注意,这里一定要有一个空行!*/
<title>OnlyVC.cn</title>
<h1> welcome to OnlyVC.cn </h1>.....

OK,到此为止,做web的人肯定都知道

Next,我们可以借助像tcpdump等工具去看看HTTP,限于篇幅这里不粘贴数据了,我们可以把一个过程分成6个stage,在这个过程中需要注意一个重要的衡量指标:Round Trip Time(RTT),这个值时说一个packet从一端发送到另一端,然后再回来所用的时间。但是TCP有个很怪的毛病,简单来说就是建立连接时是先发几个小packet测测速度,然后再开始传输数据,这个过程叫做Slow Start。

HTTP1.1是不需要等待一个packet发送过去然后被确认(acknowledged)了再发送下一个packet的,我们可以发送一个packet,不管它如何,再发送下一个。

对于RFC里2 connection per hostname的设计在当时是合乎情理的,但是对于现在的Internet应用来说,已经远远不够了。但是反过来,作为一个website的开发者来看,对于一个页面使用的resources分布到多个hostname上还是有必要的,但是这个hostname的数量最好在2~4个为宜。如果页面有大量resources需要引用,尤其是对于产品较多的集合型网站,cookie的大小还是比较可观的,如果我们所有的内容都来自于一个域,假设1个页面有30张图片,cookie大小为20k,那就是有30*20=600k的东西被做了一次没用的传输,分布在其他hostname后是减少cookie-taking的一个好办法,因为cookie是有作用域的。