目录
附:本文只是简单的理解一下http协议主要的内容和使用方法
有兴趣的小伙伴可以进入此网站 https://www.runoob.com/http/http-status-codes.html(http教程的网址)具体了解学习http协议
一、http是什么?
HTTP: HyperText Transfer Protocol超文本传输协议,是互联网上应用最为广泛的有线网络传输协议的一种,是客户端和服务器进行传输内容时遵守的规则规范。
http协议是非常复杂的计算机程序,我们不需要刻意的去研究http协议的源代码,只需要研究http协议主要的内容和使用方法,为了解ajax技术的执行原理。
二、http协议的主要内容
三次握手、四次挥手、请求报文、响应报文、http协议状态码
2.1、三次握手
三次握手是http协议的一部分,通过TCOP/IP协议完成的,在客户端和服务器正式创建链接之前执行执行的程序内容
为了确保客户端和服务器都能正常工作
客户端 需要 确定
客户端 可以正常的 接收 发送 请求
服务器 可以正常的 接收 发送 请求
服务器 需要 确定
客户端 可以正常的 接收 发送 请求
服务器 可以正常的 接收 发送 请求
三次握手的步骤过程
1、客户端 给 服务器 发送请求
客户端可以确定
客户端 可以正常 发送请求
服务器可以确定
客户端 可以正常 发送请求
服务器 可以正常 接收请求
2、服务器 给 客户端 发送请求
服务器 可以确定
服务器 可以正常 发送请求
客户端 可以确定
客户端 可以正常 接收请求
服务器 可以正常 发送请求
服务器 可以正常 接收请求
3、客户端 给 服务器 发送请求
服务器 可以确定
客户端可以正常 接收请求
2.2、四次挥手
四次挥手是在客户端和服务器正式断开链接前执行http协议程序,通过TCP/IP协议完成的
为了确保客户端和服务器正常的断开连接
四次挥手的步骤过程
1、客户端 向 服务器 发送请求
客户端 告诉 服务器,客户端要断开链接了
2、服务器 向 客户端 发送请求
服务器 告诉 客户端,服务器知道客户端要断开连接了
服务器 也准备关闭了
如果 客户端 要终止 断开连接操作,客户端 会立即给服务器返回一个终止 断开连接的请求,如果 服务器 没有 接收到 客户端终止断开连接请求,服务器会继续执行 第三次挥手
3、服务器 向 客户端 发送请求
服务器 告诉 客户端,服务器已经正式关闭了,服务器 不会再 发送请求了,但是 服务器可以 继续 接收请求
4、客户端 向 服务器 发送请求
客户端 告诉 服务器,客户端知道服务器已经关闭了,客户端也关闭了,客户端 不再 接收请求,但是 客户端 可以继续 发送请求
最终状态
客户端 关闭了,不再接收请求,但是可以发送请求
服务器 关闭了,不再发送请求,但是可以接收请求
2.3、请求报文
请求报文是客户端向服务器发送请求携带参数数据时,执行的http协议程序
请求报文内容:请求行、请求头、请求空行、请求体,在浏览器中,会显示这个4个部分的主要内容
1、请求行
POST /demo/demo.php HTTP/1.1
POST 请求方式
/demo/demo.php 请求地址
HTTP/1.1 请求协议 和 协议版本
2、请求头
Host: 127.0.0.1 请求 地址/域名
Origin: http://127.0.0.1 请求 协议 和 地址/域名
Referer: http://127.0.0.1/demo/demo.html 完整的请求地址
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36 浏览器版本信息
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 期望的后端程序响应文件格式
Content-Type: application/x-www-form-urlencoded post方式都有的请求头格式设定
3、请求空行
只是存在于 http请求报文源代码中的一个空行,用于区分 请求头 和 请求体 代码,只存在于 http请求报文源代码中,浏览器中不会显示
4、请求体
post方式才有请求体,用于携带参数数据,get方式没有请求体,通过 浏览器地址栏携带参数
但是浏览器get方式也会显示请求体
2.4、响应报文
响应报文是服务器向客户端响应数据时,执行的http的http协议程序
响应报文的组成:响应行、响应头、响应体
1、响应行
HTTP/1.1 200 OK
HTTP/1.1 请求协议和协议版本
200 http状态码
OK http转态描述
2、响应头
Server: nginx/1.15.11 服务器器软件和版本
Date: Tue, 08 Feb 2022 08:08:26 GMT 服务器时间 世界标准时间
Content-Type: text/html; charset=UTF-8 服务器响应体格式和编码
X-Powered-By: PHP/7.3.4 后端程序和版本
3、响应体
{"name":"\u5f20\u4e09","age":18,"sex":"\u7537"}
后端程序输出的内容 就是 响应体内容
2.5、http状态码
所谓的http状态码是使用数字表示http请求的状态
100 - 199
客户端和服务器建立连接
等待下一步的操作
200 - 299
请求结束并且请求成功
300 - 399
重定向请求
需要从A到B,不是直接从A到B,而是先从A到C,再从C到B,称为重定向请求
400 - 499
请求执行失败,错误的原因是客户端
500 - 599
请求执行失败,错误的原因是服务器