图解HTTP读书笔记(二)

第2章:简单的HTTP协议

2.1 http协议用于客户端和服务器的通信

2.2 通过请求和响应的交换达成通信


上图为某个客户端发送给服务器的请求报文,请求报文由请求方法、请求的uri、请求使用的协议及版本以及其它可能的请求首部字段和可能的内容实体组成。


响应报文由协议版本、响应状态码以及对应的意义解释、可选的响应首部字段和响应主体组成。

2.3 HTTP是不保存状态的协议

http协议对于之前客户端和服务器端发送的任何东西或者状态都不做保存,也就是说它只管当前,不管以后或者之前。其无状态的缺点是:有些业务情境下,需要保存上一次通信的结果。针对此类需求,可以使用cookie+http协议的方式实现。

2.4 请求URI定位资源

http协议使用URI定位资源。指定请求URI的方式:


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

GET:获取资源、POST:传输实体主体、PUT:传输文件、HEAD:获取报文首部、DELETE:删除文件、OPTIONS:询问支持的方法、TRACE:追踪路径、CONNECT:要求用隧道协议连接代理、LINK:建立和资源间的联系、UNLINE:断开链接

PUT例子:


2.8 使用cookie的状态管理

第3章  http报文内的报文信息

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


经常使用的状态码有14种:200、204、206、301、302、303、304、307、400、401、403、404、500、503

200 ok、204 no content(请求处理成功,但是没有资源可以返回)、206 partial content:客户端通过content-range进行了范围请求。206指的是服务器处理成功,并返回了客户端要求的部分内容。301 move permanently:永久重定向,服务器跟客户端说要更新新的url了。302: found:表示资源临时重定向到了别处,希望用户能用新的url访问。303:see another, 也是临时重定向,但是服务端要求客户端用get方法请求资源。304 not modified。当请求头中包含if-modify-since、if-unmodified-since、if-match、if-none-match、if-range,就会返回304,表示资源没有更改,可以使用缓存。307: Temporary redirect:临时重定向,跟302一样。400: Bad Request,表示请求报文有错,需要修改后重新发送请求。401: unauthorized:表示要访问的页面需要认证信息。如果没有请求中没有发送认证信息或者认证信息不正确,那么就会返回401。403: forbidden,表示服务器拒绝提供请求的资源,可能的原因有:没有要访问的文件的权限、发送的ip对方服务器不认。404: not found。500: internel server error。内部服务器错误。表示服务器在执行请求的时候发生了一些错误,也可能是临时的故障。503: service unvailable:表示服务器目前正忙,还没有时间处理请求。

第5章  与http协作的web服务器

5.1 用单台虚拟主机实现多个域名

物理层面上只有一个主机,但是,可以利用虚拟主机的概念搭建多台服务器。

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

代理:

代理是一种充当服务器和客户端中间角色的具有转发功能的应用程序,它接收客户端的请求,转发给服务器。并接受服务器的响应,返回给客户端。

缓存代理:

也就是cdn服务器,当客户端第一次请求资源的时候,会通过缓存代理服务器,发现没有这个资源,就向源服务器请求,拿到资源的时候事先存一份。然后,当客户端下次请求资源的时候,直接从cdn服务器返回资源。

网关:

网关是转发其他服务器通信数据的服务器。


利用网关能提高通信的安全性,因为可以在客户端与网关之间的通信线路上加密以确保连接的安全。比如,网关可以连接数据库,使用 SQL 语句查询数据。另外,在 Web 购物网站上进行信用卡结算时,网关可以和信用卡结算系统联动。





猜你喜欢

转载自blog.csdn.net/cotexarm7/article/details/79296823