网络高级day03(Http)

devtools/2024/9/25 23:10:41/

目录

【1】HTTP简介

【2】 HTTP特点

【3】 HTTP协议格式

1》客户端请求消息格式

1> 请求行

2> 请求头

3> 空行

4> 请求数据

 2》服务器响应消息格式


【1】HTTP简介

HTTP协议是Hyper Text Transfer Protocol (超文本传输协议)的缩写,是用于Web Browser(浏览器)到Web Server(服务器)进行数据交互的传输协议。

HTTP是应用层协议

HTTP是一个基于TCP通信协议传输来传递数据(HTML文件、图片文件、查询结果等)。

HTTP协议工作于B/S架构上,浏览器作为HTTP客户端通过URL主动向HTTP服务器端,即WEB 服务器发送所有请求,Web 服务器根据接收到的请求后,向客户端发送响应信息。

HTTP默认端口号为80,但是你也可以改为8080或者其他端口号

【2】 HTTP特点

HTTP是短连接:无连接的含义是限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何处理数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。

HTTP是无状态的:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则他必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时他的应答就较快。

【3】 HTTP协议格式

1》客户端请求消息格式

客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行、请求头部、空行和请求数据 四个部分组成。

https://i-blog.csdnimg.cn/direct/e365b2107f3b45a890c7c3fbb41e9235.png" width="660" />

1> 请求行

请求行是由请求方法字段、URL字段、HTTP协议版本字段3个部分组成。请求行定义了本次请求的方式,格式如下:GET /example.html HTTP/1.1(CRLF)

HTTP的请求方式:

http 协议中共定义了八种数据的请求方式。分别是:OPTIONS、HEAD、GET、POST、PUT、DELETE、TRACE、CONNECT;常用的是 GET、POST,其他的请求方式都可以通过这两种方式间接的实现。(POST 增、DELETE 删、PUT 改、GET 查)

GET方法和POST方法的区别:

GET 通常用来从服务器上获得数据,而非修改信息;POST 用来向服务器传递数据 。

1、请求数据带参数时:GET请求数据会附加在URL 之后,以 ? 分割 URL 和传输数据,多个参数之间用 & 链接。POST 请求会把请求的数据放置在HTTP 请求包的包体中。因此,GET请求的数据会暴露在地址栏中,而POST请求不会。

2、传输数据的大小:在HTTP规范中,没有对URL的长度和传输数据大小的限制。但是在实际开发过程中,对于GET 请求,特定的浏览器和服务器对URL的长度有限制。因此,在使用GET请求时,传输数据会受到URL长度的限制。对于POST,由于不是URL传值,理论上是不会受限制的,但是实际上,各个服务器会规定对POST提交数据大小进行限制,Apache、IIS搜友各自的配置。

3、GET请求返回的内容可以被浏览器缓存起来,而每次提交的POST,浏览器在你按下F5 的时候会跳出确认框,浏览器不会缓存POST请求返回的内容。

4、GET对数据进行查询,POST主要对数据进行增删改!简单说,GET只是读,POST是写。

5、对于参数的数据类型,GET只接受ASCLL字符,而POST没有限制

2> 请求头

也被称作消息报头,请求头是由一些键值对组成,每行一对,关键字和值用英文冒号“:”分隔。

允许客户端向服务器发送一些附加信息或客户端自身的信息,典型的请求头:

Accept:作用:描述客户端希望接收的 响应body 数据类型;示例:Accept:text/html

Accept-Charset:作用:浏览器可以接受的字符编码集;示例:Accept-Charset:utf-8

Accept-Language:作用:浏览器可接受的语言;示例:Accept-Language:en

Connection:作用:表示是否需要持久连接,注意HTTP1.1默认进行持久连接;示例:Connection:close

Content-Length:作用:请求的内容长度:示例:Content-Length:348

Content-Type:作用:描述客户端发送的 body 数据类型

3> 空行

 最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头。

4> 请求数据

请求数据:请求数据不在GET方法中使用,而是在POST方法中使用。POST方法适用于需要客户端填写表单的场合。与请求数据相关的最常用的请求头是Content-Type和Content-Length。

 2》服务器响应消息格式

HTTP 响应也有4个部分组成,分别是:状态行、消息报头、空行和响应正文。

状态行:由三个部分组成,HTTP协议的版本号、状态码以及对状态码的的文本描述。

例:HTTP/1.1 200 OK(CRLF)。(200表示请求已经成功)

https://i-blog.csdnimg.cn/direct/35fbbd5a19924d099048d6e1a7b29198.png" width="632" />

 


http://www.ppmy.cn/devtools/117217.html

相关文章

【嵌入式硬件】续流二极管

1.续流二极管简介 续流二极管(flyback diode),有时也称为飞轮二极管或是snubber二极管,是一种配合电感性负载使用的二极管,当电感性负载的电流有突然的变化或减少时,电感二端会产生突变电压,可能会破坏其他元件。配合续流二极管时,其电流可以较平缓地变化,避免突波电压…

【编程基础知识】MySQL中什么叫做聚簇索引、非聚簇索引、回表、覆盖索引

一、引言 在数据库的奇妙世界里,索引是提升查询速度的超级英雄。就像图书馔的目录帮助我们快速找到书籍一样,MySQL中的索引加速了数据检索的过程。本文将带你深入了解MySQL中的聚簇索引、非聚簇索引、回表操作以及覆盖索引,探索它们如何影响…

Linux之实战命令01:xargs应用实例(三十五)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【…

mac-m1安装nvm,docker,miniconda

1.安装minicondaMAC OS(M1)安装配置miniconda_mac-mini m1 conda-CSDN博客 2.安装nvm(用第二个方法)Mac电脑安装nvm(node包版本管理工具)-CSDN博客 3.安装docker dmg下载链接docker-toolbox-mac-docker-for-mac安装包下载_开源镜像站-阿里云 教程MacOS系…

vue3/Element/Tabs 标签页的使用与详解

1. 引入 Element Plus 首先&#xff0c;在你的 Vue 组件中引入所需的组件&#xff1a; <template><el-tabs v-model"activeTab" tab-click"handleTabClick"><el-tab-pane label"用户管理" name"first">用户管理内…

408算法题leetcode--第14天

92. 反转链表 II 92. 反转链表 II思路&#xff1a;头插法时间&#xff1a;O(n)&#xff1b;空间&#xff1a;O(1) /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNo…

sheng的学习笔记-AI-蒙特卡罗强化学习

AI目录&#xff1a;sheng的学习笔记-AI目录-CSDN博客 强化学习&#xff1a;sheng的学习笔记-AI-强化学习&#xff08;Reinforcement Learning, RL&#xff09;-CSDN博客 K-摇臂赌博机&#xff08;K-armed bandit&#xff09;&#xff1a;https://blog.csdn.net/coldstarry/ar…

交换机和路由器的区别

交换机和路由器的区别主要体现在以下几个方面&#xff1a; 工作层次不同&#xff1a;交换机通常工作在OSI模型的数据链路层&#xff08;第二层&#xff09;&#xff0c;主要根据MAC地址进行数据包转发。而路由器则工作在OSI模型的网络层&#xff08;第三层&#xff09;&#xf…