【图解HTTP】读书笔记

【图解HTTP】读书笔记

常见概念

  • HTTP:全称是Hyper Text Transfer Protocol,超文本传输协议
  • 版本:HTTP/1.0、HTTP/1.1
  • 协议:某一种公用的规则
  • HTTP相关协议
    • DNS:用于将域名解析为IP,供IP层使用
    • TCP:提供可靠在字节流服务,用于传输HTTP报文
    • IP:根据IP地址,选择合适的路由,发送对应的数据包
    • ARP:用于将IP解析为MAC地址,供数据链路层使用
  • URL与URI
    • URI:Uniform Resource Identifier,统一资源标识符,也就是通过某种协议方案标识的资源的定位符
      • Uniform:以统一的格式进行标识
      • Resource:可以用于标识的资源
      • Identifier:标识具体可以标识的对象
      • 作用:用于标识资源
    • URL:Uniform Resource Locator,统一资源定位符,是URI的一个子集,用于标识某一具体的资源
    • 需要注意的是,URI可以用于描述某一资源,但可能无法具体定位到某一个资源,而URL则是可以具体定位到该资源

简单的HTTP协议

通信模式:基于请求和响应模式,没有请求则没有响应,通信过程中不保存状态信息(无状态协议),也就是不对请求和响应之间的通信状态进行保存

报文类型

  • 请求报文
    • 格式(请求行 请求头部字段\r\n请求实体内容)
  • 响应报文
    • 格式(响应行 响应行头部字段\r\n响应实体内容)

HTTP方法

  • GET:用于获取资源
  • POST:用于传输主体的实体
  • PUT:用于传输文件(一般网站不开发该功能)
  • HEAD:与GET类似,但是不返回报文主体内容,主要用于确认URI有效性以及资源的更新日期
  • DELETE:用于删除文件,与PUT相反(一般不开放)
  • OPTIONS:用于查询指定URI资源支持的方法
  • TRACE:跟踪路径(不怎么使用)
  • CONNECT:要求使用隧道协议连接代理,主要是SSL(Secure Sockets Layer,安全套接字)和TLS(Transport Layer Security,传输层安全)将通信的内容加密

长连接和短连接

  • 短连接:在HTTP初期版本中,每次完成一个HTTP传输,就需要建立一次TCP连接,会造成很多不必要的开销,使得网络性能降低
  • 长连接:只要通信的一端没有明确提出断开连接,则保持TCP连接(keep-alive),建立一个TCP连接可以进行多次的HTT通信,减少了TCP的建立以及断开所造成的额外开销,减轻负担

管线化

在长连接的基础上,使得请求管线化成为可能,在这之前,每一次请求都需要等到前一次请求的响应回来之后才能发出,而采用管线化之后,则可以不用等到响应再发出新的请求

Cookie技术

在请求和响应报文中,加入Cookie信息,用于保存状态信息,从而使得无状态协议HTTP协议可以保存状态

HTTP报文信息

  • HTTP报文
    • 使用HTTP协议进行通信的信息称为HTTP报文
    • 请求端发出的报文称为请求报文
    • 响应段发出的报文称为响应报文
    • 报文的基本格式(报文首部CRLF报文主体)
      【报文结构图】

HTTP状态码

  • 作用:用于告知客户端服务端处理的结果
  • 格式:3位数字 + 状态码说明
  • 类别
    • 1XX:信息性状态码,表示请求正在处理
    • 2XX:成功状态码,表示请求正常处理完毕
    • 3XX:重定向状态码,需要进行附加操作以完成请求
    • 4XX:客户端错误状态码,服务器无法处理请求
    • 5XX:服务器错误状态码,服务器处理请求错误
  • 常用状态码
    • 2XX系列,表示成功
      • 200 OK,表示请求被正常处理
      • 204 No Content, 表示请求被正常出来,但是返回的响应报文中不包含实体的主体部分
      • 206 Partial Content,表示客户端进行范围请求,而服务端成功执行了这部分的请求,响应报文由Content-Range指定实体内容
    • 3XX系列,重定向,表示浏览器需要执行某些特殊的处理以正确处理请求
      • 301 Moved Permanently,永久性重定向,表示请求的资源已经分配了新的URI,以后应该使用新的URI
      • 302 Found,临时性重定向,表示请求的资源已经分配新的URI,希望用户本次能使用新的URI访问
      • 303 See Other,表示请求的资源存在另外一个URI,应使用GET方法定向获取资源
      • 304 Not Modified,请求的附带条件的资源找到,但是未满足请求的条件(与重定向无关)
      • 307 Temporary Redirect,临时性重定向,与302类似
    • 4XX系列,客户端错误,表明客户端是发生错误的原因所在
      • 400 Bad Request,请求报文中存在语法错误
      • 401 Unauthorized,表示请求需要认证
      • 403 Forbidden,表示请求的资源被服务器拒绝
      • 404 Not Found,无法找到请求的资源
    • 5XX系列,服务器错误,表示服务器本身发生错误
      • 500 Internal Server Error,服务器执行请求时发生了错误或临时性故障
      • 503 Service Unavailable,服务器暂时处于超载状态或正在进行停机维护,现在无法处理请求

HTTP首部

  • 作用:在客户端与服务器通信过程中传递额外信息
  • 格式:首部字段名: 字段值1, 字段值2, ...
  • 类型
    • 通用首部字段(请求和响应报文都会使用的字段)


      通用首部字段
    • 请求首部字段(补充了请求的附加信息)


      请求首部字段

      请求首部字段
    • 响应首部字段(补充了响应的附加信息)


      响应首部字段

      响应首部字段
    • 实体首部字段(补充与实体内容有关的信息)


      实体首部字段

确保安全的HTTPS

HTTP缺点(未加密协议)

  • 使用明文通信,内容可能会被窃听
  • 不验证通信方的身份,有可能会遭遇伪装
  • 无法验证报文的完整性,有可能内容遭修改

加密策略

  • 通信加密,通过和SSL或TLS组合使用,建立安全的通信通道,加密HTTP通信内容
  • 内容加密,将参与通信的内容本身加密

HTTPS = HTTP + 加密 + 认证 + 完整性保护,需要注意的是,HTTPS本身并非新的协议,只是在HTTP上加了SSL


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

推荐阅读更多精彩内容

  • 本文是《图解HTTP》读书笔记的第二篇,主要包括此书的第六章内容,因为第六章的内容较多,而且比较重要,所以单独写为...
    lijiankun24阅读 1,357评论 0 6
  • 本文是《图解HTTP》读书笔记的第一篇,主要包括此书的前五章内容,简要记录一下。大概分为以下几部分: TCP/IP...
    lijiankun24阅读 1,300评论 0 2
  • 4天读完 一、了解web及网络基础 1.1 三项www构建技术: HTML:超文本标记语言 HTTP:文本传输协议...
    15d843cd48a8阅读 780评论 1 4
  • 前面两篇文章中关于 HTTP 相关知识基本上介绍的差不多了,这篇文章是对 HTTP 协议的补充,主要介绍以下三点内...
    lijiankun24阅读 1,305评论 2 3
  • 早上上班,阿三说他要去个厕所,转身刚出去又回来了,说,他妈的,只是一个屁!他说“屁”的时候我还以为他说的是“pp”...
    曾经小飞阅读 168评论 0 0