(一)概念
HTTP协议中文翻译为超文本传输协议,是互联网上使用最广泛的一种网络协议,用于客户端和服务器之间的通信。它定义了客户端和服务器之间的数据传输格式和通信规则。
在Linux系统中HTTP协议使用的语言是HTML,即超文本标记语言。是一种规范,也是一种标准,它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容。
(二)网页文件
在HTTP中使用的网页文件为 html 文件,通常有以下两种文件
- 以 .html 为后缀的文件
- 以 .htm 为后缀的文件
(三)HTML网页的文件结构
(1)HTML网页的基本格式
<html>
<head><title> 标题 </title></head>
<body> 内容 </body>
</html>
(2)head头标签中常用标签
标签 | 描述 |
<title> | 定义了文档的标题 |
<base> | 定义了页面链接标签的默认链接地址 |
<link> | 定义了一个文档和外部资源之间的关系 |
<meta> | 定义了 HTML 文档中的元数据 |
<script> | 定义了客户端的脚本文件 |
<style> | 定义了 HTML 文档的样式文件 |
(3)body内容标签中常用标签
标签 | 描述 |
<table> | 定义一个表格 |
<tr> | 定义了表格中的一行 |
<td> | 定义了表格中某一行的一列 |
<img> | 定义了一个图像 |
<a> | 定义了一个超链接 |
<p> | 定义了一行 |
<br> | 定义了换行 |
<font> | 定义了字体 |
<h1> | 定义字体大小 |
(四)静态页面和动态页面
静态页面:是一个标准的 html 网页,一般的情况下都是以 .html .htm .shtml 为后缀的网页文件。静态网页是没有数据库支持的,不包含任何的应用程序,在网页当中是不可以进行交互的。
动态页面:动态网页是有数据库支持的,可以自动更新,在网页当中可以进行交互,包含使用 php JAVA Python 高级语言编写的应用程序。
(五)HTTPP协议的版本
- HTTP/0.9
是一款已经过时的版本
- HTTP/1.0
其只支持文本传输,支持传输http头部信息包含版本和状态码
并且只支持短连接,即在一个TCP连接中只能完成一次http请求和响应的过程
- HTTP/1.1
其支持长连接和管道机制,即在一个TCP连接中能完成多次http请求和响应的过程
- HTTP/2.0
其支持二进制传输
并且支持长连接和完全多路复用,即支持在一个TCP连接中可完成多次http请求和响应,且不用按照顺序一一对应
还支持网页头部压缩和服务端主动推送
- HTTP/3.0
其是基于UDP协议来实现的,具有更高的传输速率
(六)常用的HTTP请求方法
每条 HTTP 请求报文都包含一个方法, 告诉服务器要执行什么动作
GET | 发送查询资源请求,用于查询、读取或下载资源 |
PUT | 向服务器提交数据,用于修改数据 |
POST | 向服务器提交数据,用于添加数据 |
DELETE | 用于删除资源 |
HEAD | 用于查询网页头部信息和元数据 |
(七)HTTP响应状态码
HTTP响应状态码分为正常响应和异常响应两种;正常响应又分为正常响应和重定向响应,异常响应又分为客户端请求的错误响应好热服务端的异常响应
正常 | 异常 | ||
2XX | 3XX | 4XX | 5XX |
正常 | 重定向 | 客户端请求错误 | 服务端响应异常 |
常见的HTTP响应状态码:
200 | 一切正常 |
301 | 永久重定向 |
302 | 临时重定向 |
401 | 账号密码验证有误 |
403 | 拒绝禁止访问 |
404 | 请求文件不存在 |
500 | 服务器内部有错误 |
502 | 是错误无效的网关 |
503 | 该服务不可用 |
504 | 网关请求超时 |
(八)HTTP 请求流程
用户在浏览器输入URL访问时,发起HTTP请求报文,请求中包括请求行、请求头、请求体,服务器收到请求后返回响应报文,包括状态行、响应头、响应体。
(1)请求报文
请求报文包含请求行、请求头、请求体
请求行:里面包括请求方法、URL、http协议版本
请求头:请求头为请求报文添加了一些附加信息
请求体:里面包含向服务器提交的数据
(2)响应报文
响应报文包含响应行、响应头、响应体
响应行:里面包括协议版本、状态码、状态码秒数
响应头:响应头为响应报文添加了一些附加信息
响应体:里面包含服务器返回的数据