【图解HTTP】笔记摘要

第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。

    

转载于:https://www.cnblogs.com/FireTheFire-Fly/p/6857440.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值