大学的时候不认真学,现在重温下
1.请求头中的媒体类型:Content-type:text/html
2.URI:统一资源标识符,每个web服务器的每个资源都有自己的URI。
比如某个网站的的某个gif图的URI:http://www.baidu.com/httpsreview/test.gif
URI 有两种形式:URL 和 URN;
3.URL:统一资源定位符
(1)大部分的URL都遵循一种标准格式,包含三个部分:
(2)URL第一部分通常称为方案(scheme),说明了访问资源所使用的协议类型,这部分通常就是http协议(http://)
(3)第二部分就是因特网的网址(比如:www.baidu.com)
(4)其余部分就是指定了web服务器上的某个资源(比如:/test/test.gif)
现在,几乎所有的URI都是URL;
4.URN:统一资源名
(1)URN是特定内容的唯一名称,与资源的位置无关。即同一个名字可以通过多种网络来访问到。
5.事务:
一个http事务是由一条从客户端发往服务器的请求命令和一条服务端发往客户端的请求结果组成的。
这种通信是通过名为HTTP报文(HTTP Message)的格式化数据块进行的。
6.方法:
每个HTTP请求报文都会包含一个方法,来告诉服务器执行什么动作。常见的动作有如下5种:
(1)GET(2)POST(3)DELETE(4)PUT(5)HEAD
7.状态码:
每个http响应报文都会携带一个状态码,状态码由一个三位数组成,告知客户端是否请求成功,或是否需要采取其他动作。
8.Http报文分为请求报文(request message)和响应报文(response message)两种。
HTTP报文包含了三个部分:
(1)起始行:在请求报文中就是说明要做些什么。在响应报文中就是说明出现了什么情况。
(2)首部字段:key:value组成
(3)主题:可选项,返回的结果啊,push的数据啊。
9.HTTP是如何从一个地方搬到另一个地方的,即通过(Transmission Control Protocol) TCP协议
10.TCP/IP:
Http是个应用层协议,它无需操心通信的细节,而是把这些都交给了可靠的TCP/IP协议。
(1)TCP提供了:
(1.1)无差错的数据传输(1.2)按序传输(1.3)未分段的数据流(可以在任意时刻任意尺寸将数据发送出去)
(2)HTTP网络协议的五层:
HTTP -> 应用层
TCP -> 传输层
IP -> 网络层
网络特有的链路接口 -> 数据链层
物理网络硬件 -> 物理层
11.连接:
在HTTP客户端向服务器发送报文之前,需要用网际协议(IP)地址和端口号在客户端和服务器之间建立一条TCP/IP连接。
在HTTP中你需要知道服务器的IP地址,以及服务器上运行的特定程序的端口号。但是HTTP是怎么知道这些的呢?
HTTP通过URL来知道的,URL中存储了IP地址和端口号。(URL中没有注明端口号的默认是80)
12.Telnet:
% telnet10.99.215.27 8888
GET /index.php HTTP/1.1 Host:10.99.215.27
http response…..(you can test 😄)
13.代理:
代理位于客户端和服务器之间,接受客户端所有的请求,(可能会修改)然后转发给服务器。
14.缓存:
Web缓存(Web cache)或者代理缓存(proxy cache)是一种特殊的HTTP代理服务器。可以将经过代理传送的常用文件复制保存,下一个请求同一文档的客户端就可以享受缓存的私有副本所提供的服务了。
客户端从附近的缓存下载文档比从远程的web服务器下载要快得多。
15.网关:
网关(gateway)是一种特殊的服务器。最为其他服务器的中间体使用,通常将HTTP协议转换成其他的协议。客户端可能并不知道自己是在和一个网关通信。
客户端 (<- http->) HTTP/FTP网关 (<- ftp ->) FTP服务器
16.隧道:
隧道(tunes)是建立起来之后,就会在多个连接之间对原始数据进行盲目转发的HTTP应用程序。
HTTP隧道通常用来在一条或者多条HTTP连接上转发非HTTP数据,并且不会窥探数据。
HTTP隧道的一个常见用途是通过HTTP连接承载加密的安全套接字(ssl)流量,这样ssl流量就能通过只允许web流量通过的防火墙了。
17.Agent代理:
代表用户发起HTTP请求的客户端程序。就常见的就是web浏览器,搜索引擎。