《图解http》读书笔记(一)

《图解http》是http入门级别的书,图文并茂,对初学者十分友好。强烈推荐~最近又看了一遍,简单地写一下读书笔记吧。【第一至五章】

第一章 网络基础

输出一串url,点击回车就可以看到web页面,web页面是怎么显示出来的呢?web浏览器向web服务器发送请求,获取资源,web页面显示。web是基于http协议进行通信的。http通信又是基于TCP建立连接的,图为通信过程。

应用层:决定了向用户提供服务时通信的活动。应用层的协议: HTTP、FTP、DNS。

传输层: 提供网络连接中两台计算机之间的数据传输。传输层的协议:TCP、UDP。

网络层: 处理在网络上流动的数据包。网路层的协议:IP

链路层:处理连接网络的硬件部分。

Tcp提供可靠的字节流服务:三次握手建立连接,数据传送过程中,发送端发包,接收端收包之后会发送一个确认包,否则发送端会再发包。

第二章 简单的HTTP协议

  • http协议用于客户端和服务器端的通信
  • http协议是不保存状态的协议

什么是客户端? 主动发请求的就是客户端。像通过请求获取服务器资源的web浏览器等,都可称为客户端。

HTTP的方法 作用

GET

获取资源

POST

传输实体主体  (增加资源)
PUT 修改资源

DELETE

删除资源

HEAD

和GET 方法一样,只是不返回报文主体部分,用于确认URI的有效性和资源更新的日期时间等。

OPTIONS

询问支持的方法,用于查询针对请求URI指定的资源支持的方法

TRACE

追踪路径(不常用,容易引发XST攻击)
CONNECT 要求应隧道协议连接代理

HTTP 协议是无状态协议,引入Cookie来管理客户端的状态。

首次通信时,客户端没有Cookie,登录成功后,服务器端会生成Cookie并返回响应,响应字段里面包含一个Set-Cookie,客户端收到响应,保存cookie,下次发请求时会带上cookie。 Cookie里面的sessionid用于唯一标识一个用户。

第三章 HTTP报文内的HTTP信息

用于http协议交互的信息称为http报文。http报文本身是由多行数据构成的字符串文本,报文分为报文首部和报文主体两块。

报文:http报文是http通信的基本单位,由8位组字节流组成,通过http通信传输

实体:请求或响应的有效载荷数据。实体包含在报文里面,通常,报文主体等于实体主体。只有当传输中进行编码操作时,实体主体的内容发生变化,实体主体和报文主体才会产生差异。

http的内容编码可以实现实体的压缩。

常用的内容编码:

  • gzip
  • compress
  • deflate 
  • identity (不进行压缩)

第四章 HTTP状态码

http状态码用来描述服务器端返回请求的结果。

1xx

请求正在处理

2xx

请求被成功处理

3xx

重定向

4xx

客户端出错

5xx

服务器端出错

常用的http状态码:

200  OK

请求被正常处理

204 No Content

请求已成功处理,但返回的响应不包含(也不允许包含)实体的主体部分

206 Partial Content

范围请求被成功处理

301 Moved Permanently

永久重定向

302 Found

临时重定向

303 See Other

与302有着相同的功能,但是303明确表示客户端应使用GET方法获取资源

304 Not Modified

请求的资源未过期,响应不包含主体部分

307  Temporary Redirect

临时重定向,但是会遵守浏览器标准,禁止POST 变成GET

400 Bad Request

请求报文中存在语法错误

401 Unauthorized

请求需要认证,如果已经认证过,则表示用户认证失败

403 Forbidden

禁止访问,用户没有权限访问

404 Not Found

没有找到请求的资源

500 Internal Server Error

服务器端在执行请求时发生了错误

503 Service Unavailable

服务器无法处理请求

当返回301、302、 303时,几乎所有的浏览器都会把POST 改成GET,并删除请求报文内的主体,之后请求自动重发。

301、302标准禁止将POST 改成GET,但是实际使用时大家都会这么做。

第五章 web服务器

一台web服务器可搭建多个独立域名的web网站,也可作为通信路径上的中转服务器提升传输效率。

利用虚拟主机的功能,一台web服务器可搭建多个web站点,若www.tricode.jp与www.hackr.jp 搭建在同一台服务器上面,则通过DNS解析出的ip地址是相同的,因此,http请求,必须指定完整的主机名或域名的URI。

通信数据转发程序:代理、网关、隧道

代理服务器:接受请求(或响应)并转发。

好处: 利用缓存技术减少网络带宽的流量,组织内部针对特定网站的访问控制,以获取日志为主要目的等等。

网关: 可以是http请求转化为其他协议通信;提高通信的安全性

隧道:远距离;安全通信

缓存是指代理服务器或客户端本地磁盘保存的资源副本。利用缓存可以减少对源服务器的访问,也就节省了通信流量的通信时间。

代理服务器转发服务器响应时,会保存一份资源副本。客户端缓存是保存在本地磁盘内的临时网络文件。如果浏览器缓存有效,就不必再向服务器请求相同的资源了。

猜你喜欢

转载自blog.csdn.net/Smallsun_229/article/details/81748601