第1章 了解Web及网络基础

  根据Web浏览器(Web客户端)地址栏中指定的URL,Web浏览器从Web服务器端获取文件资源(resource)等信息,从而显示出Web页面。

  CERN(欧洲核子研究组织)的蒂姆.伯纳斯-李(Tim Berners-Lee)博士提出了一种能让远隔两地的研究者们共享知识的设想。

  最初设想的基本理念:借助多文档之间相互关联形成的超文本(HyperText),连城可相互参阅的WWW(World Wide Web,万维网)。现在已经提出了3项WWW构建技术,分别是:

  •   把SGML作为页面的文本标记语言的HTML;
  •   作为文档传递协议的HTTP;
  •   指定文档所在地址的URL.

  当年HTTP协议的出现只要是为了解决文本传输的难题。由于协议本身非常简单,于是在此基础上设想了很多应用方法并投入了使用。现在HTTP协议已经超出了Web这个框架的局限,被运用到了各种场景里。

  通常使用的网络(包括互联网)是在TCP/IP协议族的基础上运作的。而HTTP属于它内部的一个子集。像这样把与互联网相关联的协议集合起来总称为TCP/IP。TCP/IP协议族里重要的一点就是分层。TCP/IP协议族按层次分别为:应用层、传输层、网络层和数据链路层。

  •   应用层:决定了向用户提供应用服务时通信的活动。包括FTP服务、DNS服务、HTTP协议等。
  •   传输层:对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。包含TCP协议、UDP协议。
  •   网络层:用来处理在网络上流动的数据包。该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方。
  •   链路层:用来处理网络的硬件部分。

  以HTTP协议举例TCP/IP通信传输过程:

  首先作为发送端的客户端在应用层(HTTP协议)发送一个想看某个Web页面的HTTP请求。接着,为了传输方便,在传输层(TCP协议)把从应用层处接收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。在网络层(IP协议),增加作为通信目的地的MAC地址后转发给链路层。接收端的服务器在链路层接收到数据,按序往上层发送,一直到应用层。当传输到应用层,才能算真正接收到由客户端发送过来的HTTP请求。

  IP协议的作用是把各种数据包传送给对方。其中两个重要的条件是IP地址和MAC地址。

  TCP协议为了更容易传送大数据才把数据分割,而且TCP协议能够确认数据最终是否送达到对方(三次握手)。

  DNS服务提供域名到IP地址间的解析服务。

  URI就是由某个协议方案表示的资源的定位标识符,用字符串标识某一互联网资源,而URL表示资源的地点(互联网上所处的位置)。可见URL是URI的子集。

第2章 简单的HTTP协议

  HTTP是一种不保存状态,即无状态协议。HTTP协议自身不对请求和响应之间的通信进行保存。也就是说在HTTP这个级别,协议对于发送过的请求或响应都不做持久化处理。但为了实现期望的保存状态功能,于是映入了Cookie技术。有了Cookie再用HTTP协议通信,就可以管理状态了。

  Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态。Cookie会根据从服务器端发送的响应报文内一个叫做Set-Cookie的首部字段信息,通知客户端保存Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入Cookie值后发送出去。服务器端发现客户端发送过来的Cookie后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。

  告知服务器意图的HTTP方法:

  GET:获取资源。用来请求访问已被URI识别的资源,指定的资源经服务器端解析后返回响应内容。(我想访问你的某个资源)

  POST:传输实体主体。GET也可以传输实体的主体,但一般用POST方法传输,POST的主要目的并不是获取响应的主体内容。(我把这条信息告诉你)

  PUT:传输文件。要求在请求报文的主体中包含文件内容,然后保存到请求URI指定的位置。鉴于HTTP/1.1的PUT方法自身不带验证机制,任何人都可以上场文件,存在安全性问题,因此一般的Web网站不适用该方法。若配合Web应用程序的验证机制,或架构设计采用REST标准的同类Web网站,就可能会开放使用PUT方法。(我要把这份文件传给你)

  HEAD:获取报文首部。与GET方法一样,只是不反悔报文主体部分。用于确认URI的有效性及资源跟新的日期时间等。(把那个相关信息告诉我)

  DELETE:删除文件。与PUT相反的方法。与PUT方法一样不带验证机制,一般网站不适用这个方法。(快把那份文件删掉)

  OPTIONS:查询支持的方法。(你支持哪些方法,我支持GET和HEAD方法)

  TRACE:追踪路径。让Web服务器端将之前的请求通信环回给客户端的方法。可以查询发送出去的请求是怎样被加工修改/篡改的。容易请发XST攻击,通常不会用到。(之后将会发生些什么)

  CONNECT:要求用隧道协议连接代理。要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。(让我通过以下吧)

第3章 HTTP报文内的HTTP信息

  请求报文结构如下:              响应报文结构如下:

                              

  发送邮件时,我们可以在邮件里写入文字并添加多份附件。这是因为采用了MIME机制,它允许邮件处理文本、图片、视频等多个不同类型的数据。而在MIME扩展中会使用一种称为多部分对象集合的方法,来容纳不同类型的数据。相应地,HTTP协议中也采纳了多部分对象集合,发送一份报文主体内可含有多类型实体。通常是在图片和文本文件等上传时使用。多部分对象集合包含的对象如下:multipart/form-data、multipart/byterange。

第4章 返回结果的HTTP状态码

  状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果。借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了错误。

  状态码如200 OK,以3位数字和原因短语组成。数字中的第一位指定了响应类别,后两位无分类。

  

第5章 与HTTP协作的Web服务器

  HTTP/1.1规范允许一台HTTP服务器搭建多个Web站点。

  在互联网上,域名通过DNS服务映射到IP地址(域名解析) 之后访问目标网站。可见,当请求发送到服务器时,已经是以IP地址形式访问了。

  HTTP通信时,除客户端和服务器以外,还有一些用于通信数据转发的应用程序,例如代理、 网关和隧道。它们可以配合服务器工作。

  代理

  代理是一种有转发功能的应用程序,它扮演了位于服务器和客户端“中间人”的角色,接收由客户端发送的请求并转发给服务器,同时也接收服务器返回的响应并转发给客户端。

  网关

  网关是转发其他服务器通信数据的服务器,接收从客户端发送来的请求时,它就像自己拥有资源的源服务器一样对请求进行处理。有时客户端可能都不会察觉,自己的通信目标是一个网关。

  隧道

  隧道是在相隔甚远的客户端和服务器两者之间进行中转,并保持双方通信连接的应用程序。

第6章 HTTP首部

  请求被发送至服务器时,请求中的主机名会用IP地址直接替换解决。但如果这时,相同的IP地址下部署运行着多个域名,那么服务器就会无法理解究竟是哪个域名对应的请求。因此,就需要使用首部字段Host来明确指出请求的主机名。若服务器未设定主机名,那直接发送一个空值即可。

  Cookie的工作机制是用户识别及状态管理。Web网站为了管理用户的状态会通过Web浏览器,把一些数据临时写入用户的计算机内。接着当用户访问该Web网站时,可通过通信方式取回之前发放的Cookie。调用Cookie时,由于可校验Cookie的有效期,以及发送方的域、路径、协议等信息,所以正规发布的Cookie内的数据不会因来自其他Web站点和攻击者的攻击而泄露。

第7章 确保Web安全的HTTPS

  HTTP+加密+认证+完整性保护=HTTPS

  所谓HTTPS,其实就是身披SSL协议这层外壳的HTTP。

【图解HTTP】笔记摘要的更多相关文章

  1. Android群英传笔记——摘要,概述,新的出发点,温故而知新,可以为师矣!

    Android群英传笔记--摘要,概述,新的出发点,温故而知新,可以为师矣! 当工作的越久,就越感到力不从心了,基础和理解才是最重要的,所以买了两本书,医生的<Android群英传>和主席 ...

  2. 图解 HTTP 笔记(七)——HTTPS

    本章主要讲解 HTTPS 的基本原理,以及如何利用 HTTPS 防范 HTTP 通信过程中存在的伪装.窃听.篡改等问题 一.HTTP 的缺点 HTTP 在通信过程中会面临以下三种安全问题: 通信使用明 ...

  3. 图解 HTTP 笔记(六)——HTTP 首部

    本章主要讲解了 HTTP 首部的结构,已经首部中各字段的用法. 一.HTTP 报文首部 上图是 HTTP 请求报文的结构. HTTP 请求报文由方法.URI.HTTP 版本.HTTP 首部字段等组成. ...

  4. <算法图解>读书笔记:第1章 算法简介

    阅读书籍:[美]Aditya Bhargava◎著 袁国忠◎译.人民邮电出版社.<算法图解> 第1章 算法简介 1.2 二分查找 一般而言,对于包含n个元素的列表,用二分查找最多需要\(l ...

  5. 「图解HTTP 笔记」Web 基础

    Web 基础 三项构建技术: HTML:页面的文本标记语言 HTTP:文档传输协议 URL:指定文档所在地址 一些概念 HTTP(HyperText Transfer Protocol):通常被译为& ...

  6. 《图解 HTTP》 摘要一

    学习过程对书本的内容的摘要以及总结,逐步完善,带有个人理解成分. Web 及网络基础 使用 HTTP 协议访问 Web 客户端:通过获取请求获取服务资源的 Web 浏览器等 HTTP 全称:Htype ...

  7. 【5】图解HTTP 笔记

    坚持.聪明.不畏困难,我将取得最后的胜利. 第一章 了解 Web 以网络基础 1. HTTP ( HyperText Transfer Protocol ): 超文本传输协议. 2. 通讯方式: 3. ...

  8. 【CSS Cookbook】笔记摘要(二)

     页面元素 使用text-align性质可以居中显示块级元素中的文字.把margin-left和margin-right设为auto时,该元素则会相对于父元素居中显示.但是现在流行的一些较低版本的浏览 ...

  9. 【CSS Cookbook】笔记摘要(一)

    概要 CSS的优点:将表现和内容相分离:更好地控制页面布局:大大减少了文件尺寸:缩短了改版时间:提高了易用性. CSS全称层叠式样表(Cascading Style Sheets). 1.问题:如何最 ...

随机推荐

  1. 4.Java集合总结系列:Map接口及其实现

    一.Map接口 Map集合的特点是:通过key值找到对应的value值,key值是唯一的,value可以重复.Map中的元素是无序的,但是也有实现了排序的Map实现类,如:TreeMap. 上面Map ...

  2. Web性能优化工具WebPageTest(一)——总览与配置

    网站性能优化工具大致分为两类:综合类和RUM类(实时监控用户类),WebPageTest属于综合类. WebPageTest通过布置一些特定的场景进行测试,例如不同的网速.浏览器.位置等. 测试完成后 ...

  3. 自定义一个EL函数

    自定义一个EL函数 一般就是一下几个步骤,顺便提供一个工作常用的 案例: 1.编写一个java类,并编写一个静态方法(必需是静态方法),如下所示: public class DateTag { pri ...

  4. DOM0 DOM2 DOM3

    DOM0  DOM2  DOM3 DOM是什么 W3C 文档对象模型 (DOM) 是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容.结构和样式. DOM 定义了访问 HTML 和 ...

  5. node.js系列:(调试工具)node-inspector调试Node.js应用

    如果你在编写Node.js代码,node-inspector是必备之选,比Node.js的内置调试器好出许多.使用起来跟Chrome的javascript调试器很相似. 使用npm安装: $ npm ...

  6. Unity属性的封装、继承、方法隐藏

    (一)Unity属性封装.继承.方法隐藏的学习和总结 一.属性的封装 1.属性封装的定义:通过对属性的读和写来保护类中的域. 2.格式例子: private string departname; // ...

  7. jquery使用CSS3实现文字动画效果插件Textillate.js

    Textillate是一款基于jquery的使用CSS3实现文字动画的小巧插件.Textillate.js集成了一些很棒的使用CSS3动画效果的 JavaScript 库,您可非常轻轻松地把这些动画效 ...

  8. 原生ajax实现http请求

      1⃣️先简单了解一下HTTP协议: http是计算机通过网络进行通信的一种规则,它是一种无状态协议(不建立持久链接,直白点儿说就是请求响应完事儿之后,链接就断开)  2⃣️一个完整的http请求有 ...

  9. [ext4]010 磁盘布局 - 如何查找inode的磁盘位置

    在linux系统中,任何一个文件,都有一个inode与其对应,也就是说,在一个文件系统中,一个文件都有唯一的ino来标示他,那么在ext4系统中,ino是如何确定的哪? 当我们新创建的文件或目录时,会 ...

  10. IO流程中IO向量iovec

    作者:Younger Liu,本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 未本地化版本许可协议进行许可. 为了提高从磁盘读取数据到内存的效率,引入了IO向量机制,IO向量即struct ...