概述

最近对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)包括这三个部分:

  1. 起始行,在请求报文里面用来说明要做些什么;在响应报文里面说明发生了什么。
  2. 首部字段;以键值对的形式,名字和值用冒号来分隔,互相之间以一个空行结束。
  3. 主体。

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的更多相关文章

  1. 《Linux/Unix系统编程手册》读书笔记 目录

    <Linux/Unix系统编程手册>读书笔记1  (创建于4月3日,最后更新4月7日) <Linux/Unix系统编程手册>读书笔记2  (创建于4月9日,最后更新4月10日) ...

  2. 《Linux/Unix系统编程手册》读书笔记9(文件属性)

    <Linux/Unix系统编程手册>读书笔记 目录 在Linux里,万物皆文件.所以文件系统在Linux系统占有重要的地位.本文主要介绍的是文件的属性,只是稍微提及一下文件系统,日后如果有 ...

  3. 《Linux/Unix系统编程手册》读书笔记8 (文件I/O缓冲)

    <Linux/Unix系统编程手册>读书笔记 目录 第13章 这章主要将了关于文件I/O的缓冲. 系统I/O调用(即内核)和C语言标准库I/O函数(即stdio函数)在对磁盘进行操作的时候 ...

  4. 《Linux/Unix系统编程手册》读书笔记7 (/proc文件的简介和运用)

    <Linux/Unix系统编程手册>读书笔记 目录 第11章 这章主要讲了关于Linux和UNIX的系统资源的限制. 关于限制都存在一个最小值,这些最小值为<limits.h> ...

  5. 《Linux/Unix系统编程手册》读书笔记6

    <Linux/Unix系统编程手册>读书笔记 目录 第9章 这章主要讲了一堆关于进程的ID.实际用户(组)ID.有效用户(组)ID.保存设置用户(组)ID.文件系统用户(组)ID.和辅助组 ...

  6. 《Linux/Unix系统编程手册》读书笔记5

    <Linux/Unix系统编程手册>读书笔记 目录 第8章 本章讲了用户和组,还有记录用户的密码文件/etc/passwd,shadow密码文件/etc/shadow还有组文件/etc/g ...

  7. 《Linux/Unix系统编程手册》读书笔记4

    <Linux/Unix系统编程手册>读书笔记 目录 第7章: 内存分配 通过增加堆的大小分配内存,通过提升program break位置的高度来分配内存. 基本学过C语言的都用过mallo ...

  8. 《Linux/Unix系统编程手册》读书笔记3

    <Linux/Unix系统编程手册>读书笔记 目录 第6章 这章讲进程.虚拟内存和环境变量等. 进程是一个可执行程序的实例.一个程序可以创建很多进程. 进程是由内核定义的抽象实体,内核为此 ...

  9. 《Linux/Unix系统编程手册》读书笔记1

    <Linux/Unix系统编程手册>读书笔记 目录 最近这一个月在看<Linux/Unix系统编程手册>,在学习关于Linux的系统编程.之前学习Linux的时候就打算写关于L ...

  10. 《Linux/Unix系统编程手册》读书笔记2

    <Linux/Unix系统编程手册>读书笔记 目录 第5章: 主要介绍了文件I/O更深入的一些内容. 原子操作,将一个系统调用所要完成的所有动作作为一个不可中断的操作,一次性执行:这样可以 ...

随机推荐

  1. Zabbix Agent 源码编译安装

    简介: 单独整理一下 Zabbix Agent . 1.安装包选择 下载地址:http://www.zabbix.com/download.php 这里有两种源码包,一种是安装 Zabbix Serv ...

  2. Delphi TXLSReadWriteII 导出EXCEL

    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  3. Unity网格合并_材质合并

    [转]Unity网格合并_材质合并 原帖请戳:Unity网格合并_材质合并 写在前面: 从优化角度,Mesh需要合并. 从换装的角度(这里指的是换形状.换组成部件的换装,而不是挂点型的换装),都需要网 ...

  4. 干货|技术小白如何在45分钟内发行通证(TOKEN)并上线交易(附流程代码

    https://blog.csdn.net/HiBlock/article/details/80071478

  5. Redis核心原理

    Redis系统介绍: Redis的基础介绍与安装使用步骤:https://www.jianshu.com/p/2a23257af57b Redis的基础数据结构与使用:https://www.jian ...

  6. svg旋转动画

    <!doctype html><html><head> <title>test</title> <meta charset=" ...

  7. 微信小程序页面跳转 的几种方式

    最近在做微信小程序,碰到页面跳转的问题,总结一下页面之间跳转的方式 一.wx.navigateTo(OBJECT) 这是最普遍的一种跳转方式,其官方解释为:“保留当前页面,跳转到应用内的某个页面” 类 ...

  8. netty(二) 创建一个netty服务端和客户端

    服务端 NettyServer package com.zw.netty.config; import com.zw.netty.channel.ServerInitializer;import io ...

  9. freemaker超详细 讲解 配置

    一.FreeMarker简介 二.第一个FreeMark示例 2.1.新建一个Maven项目 2.2.添加依赖 2.3.添加存放模板的文件夹 2.4.添加模板 2.5.解析模板 2.6.运行结果 三. ...

  10. APIView流程——请求方式分发