目录

一、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. j2ee与mysql乱码过滤_mysql 在 j2ee中配置的乱码问题处理
  2. 蚂蚁海图切片工具linux版本,Web海图服务软件 - 海图在线
  3. [蓝桥杯2016初赛]四平方和-数论+枚举
  4. JDK 8中的Oracle Drops Collection文字
  5. 因果关系固定搭配知识库项目CausalCollocation
  6. mvc+ef中比较数据
  7. windows效率工具,翻译软件QTranslate
  8. 布尔运算,二进制和门电路
  9. python两个dataframe求差集_spark计算两个DataFrame的差集、交集、合集
  10. nginx配置ssl证书的方法
  11. IT书籍汇总下载(python_c++_java_android_网络安全)等-持续更新
  12. 教育部计算机考研大纲,2021考研计算机大纲计算机组成原理部分考查内容
  13. Python百度指数抓取 一键生成指数信息导出到txt文件,制作可视化动态图表
  14. Pyton爬虫实现豆瓣登陆
  15. 华中科技大学计算机视觉张朋,计算机视觉与深度学习前沿研讨会圆满举办
  16. 国际服服务器怎么换账号吗,战争雷霆国际服怎么切换账号 | 手游网游页游攻略大全...
  17. Django开源项目
  18. eplan和西门子plc的对接_彻底搞定西门子1200PLC之通讯篇
  19. JavaScript实现React实现网页转换成图片截屏下载
  20. mysql 小版本直接升级

热门文章

  1. 3.第一个HelloMaven/快速入门
  2. 使用 :after伪元素撑开 div
  3. HDU 1422 重温世界杯
  4. twrp gui/actions.cpp 中的功能实现 tw_action ,tw_action_param ,第二章
  5. Silverlight数据驱动模式探索系列 (1)已知列数的DataGrid绑定
  6. 深度学习图像分类(十四): EifficientNet系列(V1, V2)
  7. html文件调整表格边框的属性,css怎么设置表格边框?
  8. AndroidManifest中android:label与第三方库冲突问题
  9. Oprofile工具的使用
  10. 常见排序算法之快速排序