1. HTTP客户端和HTTP服务器共同构成额万维网的基本组件
2. 最常见的HTTP客户端就是Web浏览器
3. Web服务器会为所有HTTP对象数据附加一个MIME类型,当Web浏览器从服务器中取回一个对象时,回去查看相关的MIME类型,看看它是否知道如何处理这个对象。MIME类型是一种文本标记,表示一种主要的对象类型和一个特定的子类型,中间由一条斜杠来分隔,如:text/html、image/jpeg、text/plain等,常见的MIME类型有数百个
4. 服务器资源名被称为统一资源标识符(UniformResource Identifier,URI)。URI有URL和URN两种形式。- 统一资源定位符URL,描述了一台特定服务器上某资源的特定位置,它们可以说明如何从一个精确、固定的位置获取资源。URL通常包含三个部分:
1)方案(scheme),说明了访问资源所使用的协议类型,如http;
2)服务器的因特网网站,如www.joes-hardware.com;
3)Web服务器上的某个资源- 统一资源名URN,特定资源的唯一名称,与资源所在地无关。通过URN,可以用同一个名字通过多种网络访问协议来访问资源,如因特网标准文档RFC 2141在多个地方都可以用urn:ietf:rfc:2141命名,URN尚处于试验阶段,需要一个支撑架构来解析资源的位置
5. 每一个HTTP请求报文都包含一个方法,这个方法告诉服务器要执行什么操作
HTTP方法 | 描述 |
GET | 从服务器向客户端发送命名资源 |
PUT | 将来自客户端的数据存储到一个命名的服务器资源中去 |
DELETE | 从服务器中删除命名资源 |
POST | 将客户端数据发送到一个服务器网关应用程序 |
HEAD | 仅发送命名资源响应中的HTTP首部 |
6. 每条HTTP响应报文返回时都会携带一个状态码。状态码是一个三位数字的代码,告知客户端请求是否成功,或者是否需要采取其他行动。伴随着每个数字状态码,HTTP还会发送一条解释性的“原因短语“文本。如:200 OK
HTTP状态码 | 描述 |
200 | OK,文档正确返回 |
302 | Redirect(重定向),到其他地方去获取资源 |
404 | Not Found(没找到),无法找到这个资源 |
服务器发往客户端的报文称为相应报文(Response)。HTTP报文包括以下三个部分:
1)起始行,在请求报文中用来说明要做些什么,在响应报文中说明出现了说明情况;
2)首部字段,零个或多个首部字段,每个首部字段包含一个名字和一个值,两者之间用冒号(:)分隔,首部以一个空行结束;
3)主体,请求主体中包括了要发送给Web服务器的数据,响应主体中装载了要返回给客户端的数据。起始行和首部都是文本形式且都是结构化的,而主体则不同,主体中可以包含任意二进制数据(比如图片、视频、音轨、软件程序等)
8. 浏览器连接处理过程:
1)浏览器从URL中解析出服务器的主机名;
2)浏览器将服务器的主机名转换成服务器的IP地址;
3)浏览器将端口号从URL中解析出来;
4)浏览器建立一条与Web服务器的TCP连接;
5)浏览器向服务器发送一条HTTP请求报文;
6)服务器向浏览器回送一条HTTP响应报文;
7)关闭连接,浏览器显示文档
9. netcat:nc指令
10. HTTP版本:HTTP/0.9 HTTP/1.0 HTTP/1.0+ HTTP/1.1 HTTP/2.0
11. Web的结构组件:
1)代理:位于客户端和服务器之间,接收所有客户端的HTTP请求,并将这些请求转发给服务器(可能会对请求进行修改之后转发)。出于安全考虑,代理作为转发所有Web流量的可信任中间节点使用,对请求和响应进行过滤
2)缓存:一种特殊的HTTP代理服务器,可以将经过代理传送的常用文档复制保存起来,下一个请求同一文档的客户端就可以享受缓存的私有副本所提供的服务
3)网关:一种特殊的服务器,作为其他服务器的中间实体使用,通常用于将HTTP流量转换成其他的协议
4)隧道:在两条连接之间对原始数据进行盲转发的HTTP应用程序。HTTP隧道通常用来在一条或多条HTTP连接上转发非HTTP数据,转发时不会偷窥数据
5)永不Agent代理:代表用户发起HTTP请求的客户端程序,所有发布Web请求的应用程序都是HTTP Agent代理。
12.《HTTP口袋书》