一、前言
书目:《图解HTTP》
(著)【日】上野 宣
(译) 于均良
二、正文
第一章 了解Web及网络基础

Web使用一种名为HTTP(HyperText Transfer Protocol,超文本转移协议)作为规范,完成从【客户端】到【服务端】等一系列运作流程。协议是指规则的约定。即,【Web是建立在HTTP协议上通信。】

HTTP的诞生及发展

3项WWW构建技术,把SGML(标准通用标记语言)作为页面的文本标记语言HTML;
作为文档传递协议的HTTP;
指定文档所在地的URL(统一资源定位符)


TCP/IP协议族

TCP/IP的分层管理
应用层:决定了向用户提供应用服务时通信的活动。【FTP文本转移协议】、【DNS域名系统】、【HTTP】
传输层:对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。【TCP传输控制协议】、【UDP用户数据报协议】
网络层:又名【网络互连层】。用来处理网络上流动的数据包。该层规定了通过怎样的路径(传输路径)到达对方计算机,并把数据包传送给对方。数据包是网络传输的最小数据单位。
链路层:又名【数据链路层、网络接口层】。用来处理连接网络的硬件部分。
包括【控制操作 系统】【硬件设备驱动】【NIC网络适配器,网卡】【光纤】


与HTTP密切关联的协议:【IP】【TCP】【DNS】
负责传输的IP协议:{
IP网际协议,【网络层】
与【IP地址】有区别
IP协议作用是把各种数据包传送给对方。保证确实传送成功,需要【IP地址】【MAC地址】
【IP地址】指明了节点被分配到的地址;【MAC地址】指网卡所属的固定地址。
【ARP协议】是一种用以解析地址的协议。根据通信方的【IP地址】反查【MAC地址】
【路由选择】:没有人能够全面掌握互联网中的传输状况
}
确保可靠的TCP协议:{
提供可靠的字节流服务。【传输层】

TCP采用了三次握手策略:{
TCP的标志:SYN(Synchronize)和ACK(acknowledgement)

}
}
负责域名解析的DNS服务:{
DNS服务是提供【域名】到【IP地址】之间的解析服务。 【应用层】

}
HTTP通信过程:{

}
URI和URL:{

URI格式:{

}
}
并不是所有的应用程序都符合RFC:{
RFC(Request for Comments,征求修正意见书)

}
第二章 简单的HTTP协议


请求报文的结构:{
【方法】【URI】【协议版本】
【请求首部字段 】
【内容实体 】

}
响应报文的构成:{
【协议版本】【状态码】【状态码的原因短语】
【响应首部字段 】
【主体 】

}
HTTP是不保存状态的协议:{
HTTP是一种不保存状态,即【无状态(stateless)】协议。
这是为了更快地处理大量事务,确保协议的可伸缩性,而特意把HTTP协议设计成如此简单的。

为了实现【期望的保存状态】功能,引入了Cookis技术。
有了Cookie 再用HTTP协议通信,就可以管理状态了。
}
请求URI定位资源:{
指定请求URI的方式:{

}
}
HTTP的八大方法:{
GET:获取资源:{
用来请求访问已被URI识别的资源。【文本】或【CGI(通用网关接口)】

例子:{

}
}
POST:传输实体主体:{
用来传输实体的主体。
主要目的并不是获取响应的主体内容。

例子:{

}
}
PUT:传输文件:{
用来传输文件。
像FTP协议的文件上传一样,要求在请求报文的主体中包含文件内容,然后保存到请求URI指定的位置。
PUT自身不带验证机制,任何人都可以上传文件,存在安全性问题。
一般的Web网站不使用此方法。
若使用【配合Web应用程序的验证机制】或【采用REST架构设计的Web网站】,
就可使用此方法。

}
HEAD:获得报文首部:{
与GET方法一样,只是不返回报文主体部分。
用于确认URI的有效性 及相关信息。

}
DELETE:删除文件:{
用来删除文件,与PUT方法相反。
DELETE 自身不带验证机制,任何人都可以上传文件,存在安全性问题。
一般的Web网站不使用此方法。
若使用【配合Web应用程序的验证机制】或【采用REST架构设计的Web网站】,
就可使用此方法。


}
OPTIONS:询问 所支持的方法:{
用来查询 针对请求URI指定的资源 所支持的方法。

}
TRACE:追踪路径:{
让Web服务器端将之前的请求通信环 回给客户端。

}
CONNECT:要求用【隧道协议】连接代理:{
要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。
主要使用【SSL安全套接层】和【TLS传输层安全】把通信内容加密后经网络隧道传输。
格式:{
}

}
}
【HTTP/1.0】和【HTTP/1.1】支持的方法:{

}
持久连接 节省通信量:{
HTTP初始版本中,每进行一次HTTP通信就要断开一次TCP连接:{

}
初始版本中,HTML文档的传输方式:{

}
持久连接:{
HTTP keep-alive 特点:只要任意一端没有明确提出断开连接,则保持TCP连接状态。

其好处在于减少了TCP连接的重复建立和断开所造成的额外开销,减轻了服务端的负载。
【在HTTP/1.1中,所有的连接默认都是持久连接】
}
管线化:{
持久连接 使得多数请求以【管线化pipelining】方式发生成为可能。

}
}
使用Cookie的状态管理:{
【如果让服务器管理全部客户端状态 则会成为负担】

Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态:{

报文:{


}
}
}
(完)
HTTP协议详解
本文深入浅出地介绍了HTTP协议的基础知识,包括HTTP的工作原理、请求与响应的过程、HTTP方法的使用等,并探讨了如何通过持久连接和管线化提高HTTP通信效率。
1209

被折叠的 条评论
为什么被折叠?



