《http权威指南》读书笔记1
概述
最近对http很感兴趣,于是开始看《http权威指南》。别人都说这本书有点老了,而且内容太多。我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做,还告诉你为什么这么做。于是我把学到的知识点记录下来,供以后开发时参考,相信对其他人也有用。
http概述
1.Web服务器是Web资源的宿主,但是资源并不一定非得是静态文件,资源还可以是根据需要生成内容的软件程序。总之,所有类型的内容来源都是资源,电子表格文档是一种资源,Web网关是一种资源,搜索引擎也还是一种资源。
2.MIME type就是媒体类型,用来标记多媒体内容,比如:html格式的文本文档由text/html类型来标记;jpeg图片用image/jpeg来标记等等。
3.URI = URL + URN。url是用路径作为标识的统一资源标识符(URI)。URN是统一资源名,它与位置无关,所以如果url路径上的资源不存在了,url会失效,但是URN不会。
4.一个Web页面通常并不是单个资源,而是一组资源的集合,它要为每个嵌入式资源使用一个单独的http事务。
5.http报文(message)包括这三个部分:
- 起始行,在请求报文里面用来说明要做些什么;在响应报文里面说明发生了什么。
- 首部字段;以键值对的形式,名字和值用冒号来分隔,互相之间以一个空行结束。
- 主体。
6.http报文是通过TCP协议从一个地方搬到另一个地方去的。TCP提供了:
- 无差错的数据传输
- 按序传输(数据总是按照发送的顺序到达)
- 未分段的数据流(可以在任意时刻以任意尺寸将数据发送出去)
7.从上往下依次是:应用层(http),传输层(TCP),网络层(IP),数据链路层(网络接口),物理层(物理硬件)。所以真正在网络中传输的其实就是http,TCP和IP。
8.http的默认端口号是80;https的默认端口号是443。
9.HTTP-NG又名HTTP/2.0。
10.Web的结构组件:
- 代理。代理位于客户端和服务端之间,接受所有客户端的http请求,并将这些请求转发给服务器(可能会对请求进行修改之后转发)。
- 缓存。Web缓存(web cache)或者代理缓存(proxy cache)是一种特殊的http代理服务器,可以将经过代理传送的常用文档复制保存起来,下一个请求同一个文档的客户端就可以享受缓存的私有副本所提供的服务了。
- 网关。网关是一种特殊的服务器。它作为其他服务器的中间实体使用,通常用于将http流量转换成其他的协议,比如ftp协议。客户端可能并不知道自己正在与一个网关进行通信。
- 隧道。隧道是建立起来后,就会在两条连接之间对原始数据进行盲转发的http应用程序,http隧道通常用来在一条或多条http连接上转发非http数据,转发时不会窥探数据。常见用途是利用隧道转发SSL流量,这样SSL流量就可以穿过只允许http流量通过的防火墙了。
- Agent代理。用户Agent代理简称Agent代理,是代表用户发起http请求的客户端程序。所有发布web请求的应用程序都是http Agent代理。比如:web浏览器。
《http权威指南》读书笔记1的更多相关文章
- 《Linux/Unix系统编程手册》读书笔记 目录
<Linux/Unix系统编程手册>读书笔记1 (创建于4月3日,最后更新4月7日) <Linux/Unix系统编程手册>读书笔记2 (创建于4月9日,最后更新4月10日) ...
- 《Linux/Unix系统编程手册》读书笔记9(文件属性)
<Linux/Unix系统编程手册>读书笔记 目录 在Linux里,万物皆文件.所以文件系统在Linux系统占有重要的地位.本文主要介绍的是文件的属性,只是稍微提及一下文件系统,日后如果有 ...
- 《Linux/Unix系统编程手册》读书笔记8 (文件I/O缓冲)
<Linux/Unix系统编程手册>读书笔记 目录 第13章 这章主要将了关于文件I/O的缓冲. 系统I/O调用(即内核)和C语言标准库I/O函数(即stdio函数)在对磁盘进行操作的时候 ...
- 《Linux/Unix系统编程手册》读书笔记7 (/proc文件的简介和运用)
<Linux/Unix系统编程手册>读书笔记 目录 第11章 这章主要讲了关于Linux和UNIX的系统资源的限制. 关于限制都存在一个最小值,这些最小值为<limits.h> ...
- 《Linux/Unix系统编程手册》读书笔记6
<Linux/Unix系统编程手册>读书笔记 目录 第9章 这章主要讲了一堆关于进程的ID.实际用户(组)ID.有效用户(组)ID.保存设置用户(组)ID.文件系统用户(组)ID.和辅助组 ...
- 《Linux/Unix系统编程手册》读书笔记5
<Linux/Unix系统编程手册>读书笔记 目录 第8章 本章讲了用户和组,还有记录用户的密码文件/etc/passwd,shadow密码文件/etc/shadow还有组文件/etc/g ...
- 《Linux/Unix系统编程手册》读书笔记4
<Linux/Unix系统编程手册>读书笔记 目录 第7章: 内存分配 通过增加堆的大小分配内存,通过提升program break位置的高度来分配内存. 基本学过C语言的都用过mallo ...
- 《Linux/Unix系统编程手册》读书笔记3
<Linux/Unix系统编程手册>读书笔记 目录 第6章 这章讲进程.虚拟内存和环境变量等. 进程是一个可执行程序的实例.一个程序可以创建很多进程. 进程是由内核定义的抽象实体,内核为此 ...
- 《Linux/Unix系统编程手册》读书笔记1
<Linux/Unix系统编程手册>读书笔记 目录 最近这一个月在看<Linux/Unix系统编程手册>,在学习关于Linux的系统编程.之前学习Linux的时候就打算写关于L ...
- 《Linux/Unix系统编程手册》读书笔记2
<Linux/Unix系统编程手册>读书笔记 目录 第5章: 主要介绍了文件I/O更深入的一些内容. 原子操作,将一个系统调用所要完成的所有动作作为一个不可中断的操作,一次性执行:这样可以 ...
随机推荐
- upcast 做了什么操作
把子类中仅仅继承而来的成员,赋值给父类. 但是,不会改变虚表!因为这个obj的类型没变. #include <stdio.h> using namespace std; class A{ ...
- PhoenixFD插件流体模拟——UI布局【Resimulation】详解
Liquid Resimulation 流体再(重)渲染 本文主要讲解Resimulation折叠栏中的内容 主要内容 Overview 综述 Parameters 参数 综述 Liquid Resi ...
- 【Nodejs】Expressのサンプルについて
全体の実行命令: ①c:\workspace>node XXX.js ②ブラウザに「http://localhost:3000」を入力 ▲サンプル① ・ソース(express_demo.js) ...
- javascript实现文字逐渐显现
下面是文字逐渐显现的JS代码<pre id="wenzi"></pre><div style="display:none" id= ...
- 对话框改变颜色 宽度沾满屏幕 Dialog
首先在style.xml中定义一个对话框样式,这里可以修改颜色: //对话框沾满整个屏幕的宽度 <style name="DialogShareTheme" parent=& ...
- 用swift写的一款小游戏,模仿的僵尸危机
https://github.com/123456qwer/WDZombies.git //git地址
- Django的rest_framework的视图之基于通用类编写视图源码解析
我们上一篇博客讲解了如何使用mixins类实现rest_framework的视图,但是其中有很多的冗余的代码,我们这边在来优化一下 1.queryset的视图函数 首先看下对queryset操作的视图 ...
- python脚本批量复制文件
1.拷贝一个目录下的所有文件及文件夹到另一个目录下(递归拷贝) # cat /home/test.py #!/usr/bin/python import os import shutil def ...
- spring入门——applicationContext与BeanFactory的区别
我们知道从applicationContext容器对象中如何获取Bean了,其实spring框架还有另外一种获取bean的方法:BeanFactory代码如下: BeanFactory factory ...
- Java:内部接口
1.什么是内部接口 内部接口也称为嵌套接口,即在一个接口内部定义另一个接口.举个例子,Entry接口定义在Map接口里面,如下代码: public interface Map { interface ...