目录

一、http是什么?

二、http协议的主要内容

2.1、三次握手

2.2、四次挥手

2.3、请求报文

4、响应报文

2.5、http状态码


附:本文只是简单的理解一下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

请求执行失败,错误的原因是服务器

http网络传输协议相关推荐

  1. php上传报文,PHP-02.文件上传、php保存/转移上传的文件、常见的网络传输协议、请求报文及属性、响应报文及属性...

    关系数组 array("key"=>"value",...) ; get没有数据大小的限制 post上传大小没有限制 不指定上传方式,默认是get 文件上 ...

  2. PHP-02.文件上传、php保存/转移上传的文件、常见的网络传输协议、请求报文及属性、响应报文及属性...

    关系数组 array("key"=>"value",...) ; get没有数据大小的限制 post上传大小没有限制 不指定上传方式,默认是get 文件上 ...

  3. ProtoBuf(protocol buffer) 网络传输协议

    ProtoBuf(protocol buffer) 网络传输协议 转自:http://blog.csdn.net/wenyiqingnianiii/article/details/52741312 P ...

  4. protobuf网络传输协议的优缺点

    为什么使用protobuf? protobuf常使用于作为C/S之间的数据传输的序列化工具,可以使用protobuf实现rpc框架的通信传输. 对于App网络传输协议,我们比较常见的.可选的,有三种, ...

  5. ajax,HTTP原理 : 网络传输协议,网页从输入url到渲染的流程,函数防抖和节流

    一. 前后端交互流程 1.服务器 : 提供某种服务器的机器(计算机) qq音乐:音频服务器 , 迅雷:文件服务器 , qq邮箱:邮件服务器,爱奇艺:视频服务器,谷歌:web服务器 2. 前端 访问 服 ...

  6. 网络传输协议概念和HTTP协议

    网络传输协议概念 网络传输协议或简称为传送协议,是指计算机通信或网络设备的共同语言.现在最普及的计算机通信为网络通信,所以"传送协议"一般都指计算机通信的传送协议,如:TCP/IP ...

  7. 提速 30%!腾讯TQUIC 网络传输协议

    作者:腾讯 sTGW-TQUIC 腾讯sTGW如何助力核心业务用户登录耗时降低30%,下载场景500ms内请求成功率从HTTPS的60%提升到90%,移动端APP在弱网.跨网场景下同样取得媲美正常网络 ...

  8. KCP-快速的可靠网络传输协议

    KCP简介 KCP是一个快速可靠的协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果.纯算法实现,并不负责底层协议(如UDP)的收发,需 ...

  9. 网络传输协议原理透析

    网上对OSI参考模型的讲解比较多,但是看起来总还是没法有个完整的记忆. 为了全面透析网络传输,遂总结这篇笔记,留后续查阅. 名词解释: 开放式系统互联通信参考模型(英语:Open System Int ...

  10. FTP,SFTP,HTTP,HTTPS网络传输协议

    1.FTP FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为"文传协议".用于Internet上的控制文件的双向传输.同时,它也是一个 ...

最新文章

  1. MATLAB从入门到精通:搭建一个 简单的Bp神经网络(附代码)
  2. 2021-01-10 Halcon初学者知识 【10】形状匹配 【二】模板的形状匹配
  3. Thinkphp5 自定义分页类
  4. jsp mysql在线考试系统源码_jsp+ssm+mysql实现的学生在线考试系统项目源码附带视频导入运行教程...
  5. appium java 测试用例_如何在C#中使用Appium编写测试用例?
  6. 工厂Bean 的实现类getObject 方法创建Bean 实例对象
  7. python循环括号_Python3中小括号()、中括号[]、花括号{}的区别详解
  8. ocr 图片纠正_2020年10种最佳OCR软件(免费和付费工具) NO.6
  9. OpenCV+MFC显示图像
  10. [给创业公司的原生云] ②Spine L1
  11. tensorflow系列之_pspnet网络
  12. 基于mysql的淘宝用户、商品、平台价值分析
  13. html 简单的table样式
  14. 数据库索引到底是什么,是怎样工作的?
  15. dwcs6 php 教程,初学者如何使用Dreamweaver CS6 (Dreamweaver CS6详细使用教程)
  16. Python3 flags
  17. 上周AI热点回顾:AI“模拟”出暗物质、AI挖掘毕加索秘密、CPU在大型神经网络超越V100 GPU...
  18. 字符编码简介:ASCII,Unicode,UTF-8,GB2312及Unicode和UTF-8如何转化
  19. 水浸变送器水浸传感器的原理是什么?
  20. PIC单片机之PWM PWM原理

热门文章

  1. Qss设置属性不进Set函数
  2. ASP.NET Core MVC 打造一个简单的图书馆管理系统 (修正版)(二)数据库初始化、基本登录页面以及授权逻辑的建立...
  3. Python 线程复习
  4. Linux crontab 命令详解
  5. Uboot详细解析1
  6. Ext学习笔记01 - NameSpace,类实例属性,类实例方法,类静态方法
  7. MTV和MVC的区别
  8. 【C语言】15-预处理指令1-宏定义
  9. android 排序view,Android 中ViewPager重排序与更新实例详解
  10. c#精彩编程200例百度云_每天宅家创客5分钟|智龙6号星球车:01唤醒星球车——温州中小学趣味信息技术云课程...