《HTTP权威指南》读书笔记(一)
1、因特网上有数千种不同的数据类型,HTTP仔细地给每种要通过Web传输的对象都搭上了名为MIME类型的数据格式标签。WEB服务器会为所有HTTP对象数据附加一个MIME类型。当Web浏览器从服务器中取回一个对象时,会去查看相关的MIME类型,看看它是否知道应该如何处理这个对象。
2、MIME类型是一种文本标记,表示一种主要的对象类型和一个特定的子类型,中间由一条斜杠分隔/
常用的MIME类型:
- text/html HTML格式的文本文档
- text/plain 普通的ASCII文本文档
- image/jpeg JPEG格式的图片
- image/gif GIF格式的图片
(MIME类型有很多种,详细Google或在附录找寻)
3、URI URL URN
URI:服务器资源名被统称为统一资源标识符,URI就像因特网上的邮政地址一样,在世界范围内唯一标识并定位信息资源;URI有两种形式,分别成为URL和URN。
URL: 统一资源定位符,资源标识符最常见的形式,可以明确说明如何从一个精确、固定的位置获取资源。
大部分URL都遵循一种标准格式,包含三个部分:
- 方案:说明了访问资源所使用的协议类型,如:http:// https:// 等
- 服务器的因特网地址,如:www.google.com
- 其余部分:指定Web服务器上的某个资源,如:/specials/saw-blade.gif
现在,几乎所有的URI都是URL。
URN:统一资源名,URN是作为特定内容的唯一名称使用,和资源所在地无关;URN目前尚处于试验阶段,还没有大范围使用。
4、一个HTTP事务由一条由客户端发往服务器的请求命令和一个从服务器发回客户端的响应结果组成。这种通讯通过名为HTTP报文的格式化数据块来进行。
5、HTTP方法:HTTP支持几种不同的请求命令,每个HTTP请求报文都包含一个方法。常见的HTTP方法:GET、POST、PUT、DELETE、HEAD等。
6、状态码:每条HTTP响应报文都会携带一个状态码,用于告知客户端该如何响应此报文,常用的如:200、302、404等。
7、报文:
HTTP报文由一行一行的简单字符串组成,HTTP报文都是纯文本,其主要包括三部分:
- 起始行:报文的第一行为起始行,在请求报文中用来说明需要做些什么;在响应报文中说明出现了什么情况。
- 首部字段:起始行后有零个或多个首部字段。每个首部字段为一个key-value对,格式为key:value,首部以一个空行结束。
- 主体:首部结束空行之后,就是可选的报文主体,其中包含了所有类型的数据。请求报文中包括要发送给Web服务器的数据;响应报文中则装载了需要返回给客户端的数据。与起始行和首部字段不同的是,起始行和首部字段都是文本格式和结构化的,而主体中则可以包括任意的二进制数据(如:图片,视频等)。
8、连接:
HTTP是一个应用层协议,HTTP无需担心网络通信的具体细节,它把联网的细节都交给了通用可靠的TCP/IP传输协议。
TCP/IP: TCP/IP是全世界的计算机和网络设备常用的层次化分组交换网络协议集。TCP/IP隐藏了各种网络和硬件的特点和弱点,使各种类型的计算机和网络都能进行可靠的通信。TCP提供了:
- 无差错的数据传输;
- 按序传输(数据总是会按照发送的顺序到达)
- 未分段的数据流(可以在任意时间以任意尺寸将数据发送出去)
HTTP连接流程:HTTP客户端向服务器发送报文之前,需要用IP地址和端口号在客户端和服务器端建立一条TCP/IP连接。通过URL和DNS(域名服务)可以获取到IP地址和端口号,如果没有端口号,默认的端口号为80。
连接步骤:
- 浏览器从URL中解析出主机名;
- 浏览器将服务器主机名转换成IP地址;
- 浏览器将端口号从URL中解析出来;
- 浏览器建立一条与服务器的TCP连接;
- 浏览器向服务器发送一条HTTP请求报文;
- 服务器向浏览器发送一条HTTP响应报文;
- 关闭连接,浏览器显示文档;
9、Web重要结构组件:
1)代理:代理位于客户端和服务器之间,接收所有客户端的HTTP请求,并将这些请求转发给服务器(可能会对请求进行修改后转发),代表用户访问浏览器。通常会将代理作为转发所有Web流量的可信任中间节点使用,或者对请求和响应进行过滤。
2)缓存:Web缓存或代理缓存是一种特殊的HTTP代理服务器,可以将经过代理传送的常用文档复制保存起来,下一请求同一个文档的客户端将得到缓存的副本;Http定义了很多功能,使得缓存更加高效,并规范了文档的新鲜度和缓存内容的隐私性。
3)网关:网关是一种特殊的服务器,作为其他服务器的中间实体使用。通常用于将HTTP流量转换成其他的协议,网关接受请求时就好像自己时资源的源端服务器,客户端可能并不知道自己正在与一个网关通信。例如:一个HTTP/FTP网关会通过HTTP请求接受对FTP URI的请求,但会转换成FTP协议来获取文档,得到的文档被封装成一条HTTP报文,发送给客户端。
4)隧道:隧道是建立之后,会在两条连接之间对原始数据进行盲转发的HTTP应用程序,通常用于在一条或多条HTTP连接上转发非HTTP数据,转发时不会窥探数据。常见用途是通过HTTP连接承载加密的安全套接字层(即SSL)流量。
5)Agent代理,代表用户发起HTTP请求的客户端程序,所有可以发送Web请求的应用程序都是HTTP Agent代理,如:浏览器、爬虫等。
总结:
通过对《HTTP权威指南》第一章的浏览学习,大致了解了一下HTTP的历史、报文格式、连接细节、连接流程和部分的网络术语,算是对HTTP的入门吧。
《HTTP权威指南》读书笔记(一)的更多相关文章
- 《html5 从入门到精通》读书笔记(一)
今天看了<html5 从入门到精通>这本书,感觉阅读下来很舒心,不像阅读其他书籍很揪心.html增加的知识点,我觉得非常有价值,看完几章记录了一些内容,不但能巩固,也为下次遗忘知识点做好准 ...
- HTML5从入门到精通(明日科技) 中文pdf扫描版
HTML5从入门到精通(明日科技) 中文pdf扫描版
- HTML5从入门到精通(千锋教育)免费电子版+PDF下载
本书是HTML5初学者极好的入门教材之一,内容通俗易懂.由浅入深.循序渐进.本书内容覆盖全面.讲解详细,其中包括标签语义化.标签使用规范.选择器类型.盒模型.标签分类.样式重置.CSS优化.Photo ...
- Unity Shader入门精要读书笔记(一)序章
本系列的博文是笔者读<Unity Shader入门精要>的读书笔记,这本书的章节框架是: 第一章:着手准备. 第二章:GPU流水线. 第三章:Shader基本语法. 第四章:Shader数 ...
- Oracle从入门到精通----学习笔记
书名:<Oracle从入门到精通:视频实战版>秦靖.刘存勇等编著 第4章 SQL基础 1.SQL语言分类 数据定义语言 --- DDL,Data Definition Language 数 ...
- MySQL数据库应用 从入门到精通 学习笔记
以下内容是学习<MySQL数据库应用 从入门到精通>过程中总结的一些内容提要,供以后自己复现使用. 一:数据库查看所有数据库: SHOW DATABASES创建数据库: CREATE DA ...
- Unity Shader入门精要读书笔记(二)UnityShader概述
第三章<UnityShader概述>的读书笔记: 1.Unity Shader模板提供了几种选择: 标准光照模型(新添加的基于物理的渲染方法) 不含光照的基本的顶点.片元着色器 屏幕后处理 ...
- 《html5 从入门到精通》读书笔记(二)
接着上面继续记录笔记,这次要记的知识点比较多...记录下我认为比较重要的东西. 一.表单属性 1.autocomplete属性 该属性规定form或input域应该拥有自动完成功能. <form ...
- 《html5 从入门到精通》读书笔记(三)
二.标签详解 标签 描述 4 5 <form> 定义表单. 4 5 <h1> to <h6> 定义标题1到标题6. 4 5 <head> 定义关于文档的 ...
- 《HTML5 CANVAS基础教程》读书笔记
一.HTML5简介 1.HTML5新特性 1)结构元素:section,header,hgroup,footer,nav,article,aside, 2)内容元素:figure,figcaption ...
随机推荐
- PROJ.4学习——坐标系转换
PROJ.4学习——坐标系转换 前言 PROJ可以做任从最简单的投影到许多参考数据非常复杂的转换.PROJ最初是作为地图投影工具开发的,但随着时间的推移,它已经发展成为一个强大的通用坐标转换引擎,可以 ...
- MATLAB绘图hist
刚登上号,已经学了一半了,就从现在开始写吧 以前学过的东西老忘,所以就注册个账号就当做记笔记吧 MATLAB在原来的数组中增加新行 A=[A;B]%B是要增加的行: hist使用方法 y=4*rand ...
- 下载RDO OpenStack RPM
先把http://mirrors.163.com/centos/7.2.1511/cloud/x86_64/openstack-newton/目录下的rpm包整理到一个文件rpmlist.txt中,然 ...
- 实时输出topk最频繁变动的股价
网上看到了一道关于bloomburg的面试题,follow 评论的思路 自己试着写了一个HashHeap的实现. 基本思路是维护一个大小为K的最小堆,里面是topK股价变动的公司ID(假设ID是Int ...
- 入门html第一次copy小米首页布局
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- oralce定时任务
oracle定时任务(dbms_job) author:skate time:2007-09-12 http://publish.it168.com/2006/0311/20060311017002. ...
- python笔记22-常用模块
模块就是一个python文件,用哪个模块就要import哪个模块 1.调用模块 # import model #import的本质就是把这个python从头到尾执行一遍## model.run1()# ...
- springboot整合ueditor 前后端分离
1.下载ueditor,百度搜索ueditor,下载 前端用的是Jsp版,导入文件如下 由于要修改部分源码,所以后端用的源码版,导入文件如下 2.配置路径,用来找到json文件 配置前端ueditor ...
- java多态——基础
多态 定义: 一个接口,多种实现,就是多种状态 价值: 特点:多态存在的特点,就是必须要有继承.覆盖.父类变量调用子类对象 场景: 首先检查父类中是否有该方法,如果没有,则编译错误:如果有,则 ...
- Can DBC 文件翻译,不是很标准,凑合看还可以
1 引言 DBC文件描述单个CAN网络的通信.这个信息足以监测和分析网络并模拟不是物理可用的节点(剩余的总线模拟). DBC文件也可以用来开发电子控制单元的通信软件,该控制单元应该是CAN网络的一部分 ...