目录
1、Web基础
HTTP:超文本传输协议,web客户端和服务器之间用于交互的一种应用级协议。一个web客户端(浏览器)打开一个到服务器的因特网连接,并且请求某些内容,服务器响应所请求的内容,然后关闭连接。浏览器读取这些内容,并且显示在屏幕上。
HTML:超文本标记语言,它告诉浏览器如何显示服务器响应回来的内容。
2、Web内容
对于Web客户端与服务器而言,内容是一个与MIME类型相关的字节序列,如下是常用的MIME类型:
Web服务器以两种不同的方式向客户端提供内容:
- 服务静态内容:取一个磁盘文件(静态内容),并将它的内容返回给客户端,此过程就称为服务静态内容。
- 服务动态内容:运行一个可执行文件,并将它的输出结果(动态内容)返回给客户端,此过程就称为服务动态内容。
URL:通用资源定位符,每条Web服务器返回的内容都是和他管理的某个文件相关联的,其中每个文件都有唯一的名字URL。
例如 https://mp.csdn.net/editor/html/117329769
3、HTTP事务
事务:客户端向服务器发起请求,服务器给客户端做出回应 ,这两步都成功叫做完成一个事务,任何单方面的失败都不能叫做事务。
在事务过程中,客户端和服务器使用的是URL的不同部分:
- 客户端使用前缀来决定与哪类服务器联系,服务器在哪里,以及监听的端口号是多少。
- 服务器使用后缀来发现它文件系统中的文件,并确定请求的是静态内容还是动态内容。
4、HTTP请求
URI:统一资源标识符,URI是相应的URL的后缀,包括文件名和可选的参数。
一个HTTP的请求组成部分:
- 请求行 如 GET / HTTP / 1.1 请求方法 + 协议版本
- 请求报头 为服务器提供额外信息,例如浏览器的商标名
- 空文本行 用来终止报头列表
HTTP支持多种不同的请求方法,包括:GET、POST、OPTIONS、HEAD、PUT、DELETE 和 TRACE。
HTTP协议版本:
- HTTP/1.0:老版本,目前也延用
- HTTP/1.1:新版本,定义了一些附加报头,为诸如缓冲和安全等高级特性提供支持,支持长连接。
客户端与服务器之间可以有代理缓存 ,也可以有多个,称为代理链。在请求报头中指定原始服务器的域名,使得代理链中的代理能够判断它是否可以在本地缓存中拥有一个被请求内容的副本,并指示服务器发送发送被请求的HTML文件。
5、HTTP响应
组成部分:
- 响应行
- 响应报头:提供响应的附加信息,最主要的两个就是响应主体中内容的MIME类型与响应主体的字节大小
- 终止报头的空行
- 响应主体:包含被请求的内容
一个响应行的格式为:version status-code status-message
- version字段描述响应所遵循的HTTP版本。
- status-code(状态码):是一个3位的正整数,指明对请求的处理。
- status-message(状态消息):给出与状态码等价的英文描述
如下图是一些常见的状态码与消息描述:
6、演示例程
在Linux终端输入telnet www.baidu.com 80 访问百度,结果如下:
- 发起请求
- 响应部分
- 整体展示