《http权威指南》读书笔记2
概述
最近对http很感兴趣,于是开始看《http权威指南》。别人都说这本书有点老了,而且内容太多。我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做,还告诉你为什么这么做。于是我把学到的知识点记录下来,供以后开发时参考,相信对其他人也有用。
URL与资源
1.在url出现之前,要想和朋友共享complete-catalog.xls文件,就得说这样一些话:用ftp连接到ftp.joes-hardware.com上。用匿名登录,然后输入你的用户名作为密码。变换到pub目录。转换为二进制模式。现在可以将名为complete-catalog.xls的文件下载到本地文件系统,并在那里浏览这个文件了。
2.URL语法:
<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>
3.url里面可以输出用户名和密码:
http://joe:joespassword@www.joes-hardware.com/sales_info.txt
4.URL里面还可以输入参数,参数是键值对的形式,用;分隔。
ftp://prep.ai.mit.edu/pub/gnu;type=d
并且URL的路径可以分成若干路径段,每段都可以有自己的参数,比如:
http://www.joes-hardware.com/hammers;sale=false/index.html;graphics=true
5.URl有片段功能,片段就是锚点,它并不会被传给服务器。
6.URL的快捷方式是使用相对URL,通过基础URL来推断出scheme和host,然后组装给相对URL。需要注意的是,只会把host组装给相对URL,而不是带路径的host。
7.自动扩展URL,很多浏览器都支持自动扩展URL,有2种扩展方式:主机名扩展,比如输入baidu会自动解析为www.baidu.com;历史扩展,在输入URL的时候会和历史URL进行匹配,然后提供一些URL来供你选择。
8.为了避开安全字符集表示法带来的限制,人们通过“转义”表示法来表示不安全的字符,这种转义表示法包含一个百分号(%),后面跟着两个表示字符ASCII码的十六进制数。值得一提的是,对于某些传输协议来说,使用不安全字符并没有发生不好的事情,但是对非安全字符进行编码仍然是明智的。
9.URL会告诉你资源处于什么位置,但是缺点是如果资源被移走了,URL也就不再生效了。这个时候,用URN会更有优势。
http报文
1.报文(message)是通过一个回车符和一个换行符(CRLF)来分隔起始行,首部和主体的。稳健的应用程序应该接受单个换行符作为行的终止。
2.请求报文的格式是:
<方法> <请求URL> <http版本>
<头部>
<主体>
3.响应报文的格式是:
<http版本> <状态码> <状态语>
<头部>
<主体>
4.首部分为:通用首部(既在请求报文中又在响应报文中,比如Date),请求首部(只在请求报文中,比如Accept),响应首部(只在响应报文中,比如Server),实体首部(描述主体,比如Content-Type),扩展首部(规范中没有定义的)。
5.一条长的首部可以分为多行,只需要在第二行前面加一个空格或tab即可。
6.安全方法:指不产生动作的方法(在服务器上不产生结果),比如get或者head。值得注意的是,安全方法可能会执行动作,这是有web开发者决定的。
7.head方法和get方法很类似,但服务器在响应中只返回首部,不会返回实体。这就允许客户端在未获取实际资源的情况下,对资源的首部进行检查。
8.put方法的语义是让服务器用请求的主体部分来创建一个由所请求的url命名的新文档。
9.options方法请求web服务器告知其支持的各种功能,可以询问服务器通常支持哪些方法,或者对某些特殊资源支持哪些方法。
10.扩展方法。http被设计为字段可扩展的,这样新的特性就不会使老的软件失效了。扩展方法指的就是没有在http/1.1规范中定义的方法。
11.状态码:
- 100~199:信息性状态码
- 200~299:成功状态码
- 300~399:重定向状态码
- 400~499:客户端错误状态码
- 500~599:服务端错误状态码
12.请求首部:
- Accept首部
- 条件请求首部,比如If-Modified-Since
- 安全请求首部,比如cookie
- 代理请求首部,比如Proxy-Authorization
13.响应首部:
- 协商首部,比如Accept-Ranges
- 安全响应首部,比如Set-Cookie
14.实体首部:
- 内容首部,比如Content-Length
- 实体缓存首部,比如Last-Modified
《http权威指南》读书笔记2的更多相关文章
- <数据挖掘导论>读书笔记11异常检测
异常检测的目标是发现与大部分其他对象不同的对象.通常,异常对象被称作离群点(Outlier). 异常检测也称偏差检测(Deviation detection),因为异常对象的属性值明显偏离期望的或者常 ...
- <数据挖掘导论>读书笔记10聚类分析续
基于原型的聚类 模糊c均值使用模糊逻辑和模糊集合论的概念,提出一种聚类方案,它很像K均值,但是不需要硬性地将对象分派到一个簇中.模糊c均值算法有时也称为FCM 混合模型聚类采取这样的访谈,簇集合可以用 ...
- <数据挖掘导论>读书笔记9聚类分析
1. 聚类分析仅根据在数据中发现的描述对象及其关系的信息,将数据对象分组. 其目标是组内的对象相互之间是相似的或者相关的,而不同组中的对象是不同的或者不相关的. 2.聚类分析的重要技术 K均值:K均值 ...
- <数据挖掘导论>读书笔记8FP树
1FP树
- <数据挖掘导论>读书笔记7 Apriori算法
Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法.其核心是基于两阶段频集思想的递推算法.该关联规则在分类上属于单维.单层.布尔关联规则.在这里,所有支持度大于最小支持度的项集称为频繁项 ...
- <数据挖掘导论>读书笔记4--其他分类技术
1.基于规则的分类器 2.最近邻分类器 3.贝叶斯分类器 4.人工神经网络 5.支持向量机 6.组合方法 7.不平衡类问题 8.多类问题
- <数据挖掘导论>读书笔记6关联分析的高级概念
处理联系属性: 基于离散化的方法 基于统计学的方法 非离散化方法 处理概念分层 定义在一个特定领域的各种实体或者概念的多层组织.概念分层可以用有向无环图DAG来标示. 序列模式 可选计数方案 COBJ ...
- <数据挖掘导论>读书笔记5关联分析的基本概念和算法
关联规则的强度可以用support度和confidence(置信)度来度量 关联规则发现 给定事务的集合T,关联规则发现是指找出支持度大于等于minsup并且置信度大于等于minconf的所有规则, ...
- <数据挖掘导论>读书笔记3--分类
1.分类的基本概念 分类任务就是通过学习得到一个目标函数f,把每个属性集x映射到一个预先定义的类标号y 目标函数也称为分类模型. 2. 解决分类问题的一般方法: 决策树分类法 基于规则的分类法 神经网 ...
- <数据挖掘导论>读书笔记2
1.频率和众数 frequency(vi)=具有属性值vi的对象数/m 分类属性的众数mode是具有最高频率的值. 2.百分位数 3.位置度量:均值和中位数 4.散布度量:极差和方差 绝对平均偏差 A ...
随机推荐
- MySQL InnoDB引擎B+树索引简单整理说明
本文出处:http://www.cnblogs.com/wy123/p/7211742.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错 ...
- cdn贝四层协议配置端口映射TCP端口转发
端口映射就是将外网主机的IP地址的一个端口映射到内网中一台机器,提供相应的服务.当用户访问该IP的这个端口时,服务器自动将请求映射到对应局域网内部的机器上.端口映射有动态和静态之分 1.安装好节点后初 ...
- 解题(GeLeiMa -生成格雷码)
题目描述 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code),请编写一个函数,使用递归的方法生成N位的格雷码. 给定一个整数n,请返回n位的格雷码 ...
- DJango 基础 (5)
模板加载静态文件 在settings.py文件中添加STATICFILES_DIRS,设置静态文件目录路径,同templates. # settings.py文件中STATIC_URL = '/st ...
- openvpn显示连接成功但是无法进行git操作
使用openvpn连接公司内网以进行git操作.以管理员身份运行openvpn gui,一段时间后提示连接成功,右下角图标变成绿色,但是进行git操作,每次都发生失败,提示连接不上.右键点击openv ...
- 【转】IO多路复用机制详解
高性能IO模型浅析 服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型. (2)同步非阻塞IO(Non-blocking ...
- ToolBar+Drawable实现一个好用的侧滑栏(侧边栏)和工具栏
先参考下ToolBar的使用和DrawableLayout的使用: 1.主界面布局,主要结构包含一个ToolBar和一个DrawableLayout,DrawableLayout里面有左侧边栏布局和主 ...
- HDU 6301 Distinct Values
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=6301 多校contest1 题目大意是有一个长度为N的数组,给出M个"事实",每个 ...
- VUE项目小试牛刀
首先安装webstorm:http://www.jetbrains.com/webstorm/ (推荐) 再安装node.js:https://nodejs.org/en/download/ (必 ...
- [leetcode]97. Interleaving String能否构成交错字符串
Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2. Input: s1 = "aabc ...