图解HTTP-读书笔记

前言:
最近这段时间慢慢的在补充基础知识,其中最先开始看的一本书就是【图解HTTP】这本书非常适合新手入门,里面的内容把广泛上需要了解的HTTP相关知识点都讲,又不会让读者记得泛泛或者小儿科,以下是我在阅读的时候做的读书笔记以加深印象已经理解。

IMG_1188.JPG
第一章 了解Web及网络基础
  • Web使用一种名为HTTP(HyperText Transfer Protocol,超文本传输协议)的协议作为规范,完成客户端到服务器端一系列运作流程,也就是说,Web是建立在HTTP协议上通信的。

  • 通常互联网是在 TCP/IP 协议族的基础上运作的,HTTP属于这个族的一个子集。

  • TCP/IP 协议很重要的一个概念就是分层。按层次分别为:
    应用层 >>> 传输层 >>> 网络层 >>> 链路层。
    一个HTTP请求发出后,大致的流程即是这样的:
    首先客户端在应用层发出一个想看某个Web页面的HTTP请求 >>>
    为方便传输,传输层把从应用层收到的数据(HTTP请求报文)分割成多个数据包并标记序号后,转发给网络层 >>>
    在网络层增加作为通信目的地的MAC地址后转发给链路层。
    至此,发往网络的通信请求就准备好了。

  • 发送端或者接收端,层与层之间传递数据时,每一层会被打上或消去该层所属的首部信息。

  • DNS(Domain Name System)服务是和 HTTP 协议一样位于应用层的协议。它提供域名到 IP 地址的解析服务。

  • TCP 协议位于传输层,提供可靠的字节流服务。因为传输层将数据分割,TCP 协议采用三次握手(three-way handshaking)策略以确保数据准确送达:首先发送一个带有 SYN 标志的数据包给对方 >>>
    接收端收到后回传一个带有 SYN/ACK 标志的送达确认信息 >>>
    最后发送端再回传一个带有 ACK 标志的数据包。
    至此,“握手”结束。

  • IP 协议位于网络层。作用是把各种数据包发送给对方。在此期间,会通过一个 ARP 协议将 IP 地址解析为 MAC 地址。

第二章 简单的HTTP协议
  • HTTP 协议规定,请求从客户端发出,最后服务器端响应请求并返回。也就是说,一定是从客户端开始建立通信,服务器端没有接收到请求之前不会发送响应。

  • 请求报文是由请求方法、请求URI、协议版本、请求首部字段(可选)和内容实体构成的。

GET /html/index.html HTTP/1.1
Host: ddrenched.com
name=ddrenched
  • 响应报文是由协议版本、状态码、状态码原因短语、响应首部字段(可选)和主体构成。
HTTP/1.1 200 OK
Date: Fri, 30 Jua 2017 10:59:19 GMT
<html>
...
  • HTTP 是不保存状态的协议:不对请求和响应的通信状态进行保存。
    每当有新的请求发送时,就会有对应的新响应产生。
    这是为了快速处理大量任务。

  • HTTP 方法

    • GET:获取资源。该方法用来请求访问已经 URI 识别的资源。
    • HEAD:获取报文首部。和 GET 方法一样,只是不返回报文主 体。常用来确认 URI 的有效性和资源的更新时间等。
    • POST:传输实体资源。该方法用来传输实体的主体。虽然 GET 方法也可以传输实体的主体,但一般用 POST 方法。
    • PUT:用来传输文件。要求在请求报文的主体中包含内容,然后保存到请求的 URI 指定的位置。
    • DELETE:用来删除文件。与PUT方法相反,DELETE 方法按照请求 URI 删除指定资源。
    • OPTION:用来查询请求的 URI 资源支持的方法。
  • CONNECT:要求与代理服务器通信时建立隧道,实现用隧道协议进行 TCP 通信。主要是为了使用 SSL(Secure Socket Layer,安全套接)和 TLS(Transport Layer Security,传输层安全)协议把信息内容加密后经网络隧道传输。

  • 持久连接:只要任意一方(客户端和服务器端)没有明确提出断开连接,则保持 TCP 连接状态。
    在 HTTP1.1 中,所有连接默认都是持久的。

  • Cookie 技术通过在请求和响应报文中写入 Cookie 信息来控制客户端状态。
    Cookie 会根据服务器端发送的响应报文内的一个叫 Set-Cookie 的首部字段,通知客户端保存 Cookie。当下次客户端发送请求到服务器端时,客户端会在报文中加入 Cookie 值再发送出去。

第4章 返回结果的 HTTP 状态码
  • 状态码的职责是描述客户端发出请求的返回结果,状态码以三位数字和原因短语组成。
    数字中的第一位指定了响应类别:

  • 1XX:Informationao(信息性状态码)接受的请求正在处理

  • 2XX:Success(成功状态码)请求正常处理完毕

  • 3XX:Redirection(重定向状态码)需要附加操作以完成请求

  • 4XX:Client Error(客户端错误状态码)服务器无法处理请求

  • 5XX:Server Error (服务器错误状态码)服务器处理请求错误

  • 2XX 成功

    • 200 OK:客户端发来的请求被服务器正常处理了。
    • 204 No Content:服务器正常处理,但返回的响应报文实体中没有主体。
  • 3XX 重定向

    • 301 Moved Permanently:永久性重定向。表示请求的的资源已被分配了新的 URI,以后应使用资源现在所指的 URI。
      如果已经把资源对应的 URI 保存为书签,这时应该按照 Location 首部字段提示的 URI 重新保存。
    • 302 Found:临时性重定向。表示请求的资源已被分配了新的 URI,希望用户(本次)使用新的 URI 访问。
      和301状态码相似,但302只是临时的,比如 URI 被保存成书签,但不会像301那样去更新书签。
    • 303 See Other:表示由于对应的资源存在着另一个 URI,应使用 GET 方法定向获取请求资源。
    • 304 Not Modified:表示客户端发送附带请求时(If-Match,If-None-Match,If-Modified-Since,If-Unmodified-Since,If-Range,中任一首部),服务器端允许请求访问资源,但因发生了未满足条件的情况,直接返回304。
      304状态码返回时,不包含任何响应主体部分。
      304虽然被划分在3XX中,其实和重定向没什么关系。
    • 307 Temporary Redirect:临时重定向。与302有着相同含义。
  • 4XX 客户端错误

    • 400 Bad Request:表示请求报文中语法错误。当错误发生时,需要求改请求内容后再次发送请求。
    • 401 Unanthorized:表示发送的请求需要通过 HTTP 认证。
    • 403 Forbidden:表示对请求资源的访问被服务器拒绝了。
      未获得系统访问权限,访问权限出现问题等情况都可能发生403。
    • 404 Not Found:表示服务器上无法找到请求的资源。
  • 5XX 服务器错误

    • 500 Internal Server Error:表示服务器执行请求时发生错误。
    • 503 Service Unavailable:表示服务器暂时超载无法处理。
第5章 与 HTTP 协作的 Web 服务器
  • HTTP/1.1 协议允许一台服务器搭建多个 Web 站点。

  • Web 托管服务可以用一台服务器为多个域名运行,这是使用了 Virtual Host(虚拟主机)的功能。

  • 客户端使用 HTTP 协议访问服务器时,会经常采用域名的方式。在互联网上,域名通过 DNS 服务映射到 IP 地址。可见,当请求发送至服务器时,已经是 IP 地址形式的访问了。

  • 由于用作寄存的服务器的 IP 地址是相同的,多个虚拟主机寄存的不同 Web 站点如何区分呢? 必须在 Host 首部内指定主机名或域名的 URI。

  • 代理。代理服务器的基本行为就是接受客户端的请求后转发给其它服务器。代理不改变 URI,直接发送给前方持有资源的目标服务器(称为源服务器)。从源服务器返回的响应经过代理服务器后再传给客户端。

  • 在 HTTP 通信中,可以级联多台代理服务器。请求和响应的转发会经由数台类似锁链一样链接起来的代理服务器。每次转发,需要附加 Via 首部字段以标示经过的主机信息。

  • 网关工作机制和代理十分相似,网关能使通信线路上的服务器提供非 HTTP 协议服务。

  • 隧道的目的是确保客户端与服务器进行安全的通信 。
    隧道可以按要求建立一条与服务器的通信线路,届时使用加密手段进行通信。

第6章 HTTP 首部

---未完

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,047评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,807评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,501评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,839评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,951评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,117评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,188评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,929评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,372评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,679评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,837评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,536评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,168评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,886评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,129评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,665评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,739评论 2 351

推荐阅读更多精彩内容

  • 本文是《图解HTTP》读书笔记的第一篇,主要包括此书的前五章内容,简要记录一下。大概分为以下几部分: TCP/IP...
    lijiankun24阅读 1,301评论 0 2
  • 4天读完 一、了解web及网络基础 1.1 三项www构建技术: HTML:超文本标记语言 HTTP:文本传输协议...
    15d843cd48a8阅读 780评论 1 4
  • 前面两篇文章中关于 HTTP 相关知识基本上介绍的差不多了,这篇文章是对 HTTP 协议的补充,主要介绍以下三点内...
    lijiankun24阅读 1,306评论 2 3
  • 本文是《图解HTTP》读书笔记的第二篇,主要包括此书的第六章内容,因为第六章的内容较多,而且比较重要,所以单独写为...
    lijiankun24阅读 1,359评论 0 6
  • 昨天在路上遇到一件事情。一位快递小哥与一位大胖子杠上了,两人骑着电瓶车相互绊了一下,本来也没多大点事,但那胖子不知...
    简椋阅读 506评论 1 2