网络高级day03(Http)

news2024/9/23 5:05:48

目录

【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请求到服务器的请求消息包括以下格式:请求行、请求头部、空行和请求数据 四个部分组成。

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表示请求已经成功)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2156623.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

低代码平台:数据筛选功能的全新变革

随着软件开发需求的不断增长,传统的开发方法因其复杂性和耗时性而逐渐无法满足市场对快速交付和迭代的需求。低代码开发平台作为一种新型的软件开发工具,以其高效、易用的特点受到了广泛的关注和应用。 在软件开发领域,数据筛选是一项基础且…

frpc内网穿透

官网地址:frp官网 本次用到的Liunx包: https://github.com/fatedier/frp/releases/download/v0.60.0/frp_0.60.0_linux_amd64.tar.gz下载: wget https://github.com/fatedier/frp/releases/download/v0.60.0/frp_0.60.0_linux_amd64.tar.g…

经典大语言模型解读(3):参数量更大、泛化性能更强的生成式模型GPT-2

概述 在GPT-1的基础上,OpenAI提出了包含15亿参数(GPT-1参数量的10倍以上)的GPT-2模型。该模型在一个更大规模的文本数据集WebText上进行预训练。与GPT-1依赖特定任务上的有监督微调来提升性能不同,GPT-2具备更强的零样本&#xf…

中小企业体系技术抽象沉淀-异地灾备篇

IT团队内部使用工具 系列文章:https://blog.csdn.net/caicongyang/article/details/136857045 DDL DML管控 https://github.com/hhyo/Archery/ flyway 文档编写 wiki 技术对外输出文档推荐gitbook 同城双活数据同步方案 总览: vivo 系列文章&#x…

脱离枯燥的CRUD,灵活使用Mybatis,根据mybatis动态的xml片段和接口规范动态生成代理类,轻松应付简单业务场景。

需求 需求是这样的,我们有一个数据服务平台的产品,用户先将数据源信息保存到平台上,一个数据源可以提供多个接口服务,而每个接口服务在数据库中存一个具有mybatis语法的sql片段。这样的话,对于一些简单的业务只需要编…

*C++:list

一.list简介 1. list 是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。 2. list 的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素…

一文 学透 力扣—N数之和

题目一:1. 两数之和❤ 题目思路 当我们需要查询一个元素是否出现过,或者一个元素是否在集合里的时候,就要第一时间想到哈希法。 本题呢,我就需要一个集合来存放我们遍历过的元素,然后在遍历数组的时候去询问这个集合…

第一个NDK项目

新建项目 选择Native C的项目,我这里给项目的命名是NDKTest。 目录分析 新增了一个cpp目录,里面有一个CMakeLists和.cpp文件。 CMakeLists 文件是用来配置C编译过程的。 # Sets the minimum CMake version required for this project. cmake_minimum_…

[OpenCV] 数字图像处理 C++ 学习——16直方图均衡化、直方图比较 详细讲解+附完整代码

文章目录 前言1.直方图均衡化的理论基础(1)什么是直方图(2)直方图均衡化原理(3)直方图均衡化公式 2.直方图比较理论基础(1)相关性 (Correlation)——HISTCMP_CORREL(2)卡方 (Chi-Square)——HISTCMP_CHISQR(3)十字交叉性 (Intersection) ——HISTCMP_INTERSECT(4)巴氏距离 (Bha…

缓存的思考与总结

缓存的思考与总结 什么是缓存缓存命中率数据一致性旁路模式 Cache aside双写模式直写模式 write through异步写 Write Behind 旁路和双写 案例 新技术或中间的引入,一定是解决了亟待解决的问题或是显著提升了系统性能,并且这种改变所带来的增幅&#xff…

Mysql删库跑路,如何恢复数据?

问题 删库跑路,数据还能恢复吗? 我们经常听说某某被领导训斥了,对领导心生痛恨,然后登录 Mysql 删库跑路。对于闲聊中经常听说过的一个段子,在现实生活中是否真的发生过,如果发生了,我们该如何解…

基于单片机的智能小车的开发与设计

摘要:本文论述了基于 STC89C52 单片机的智能小车的开发与设计过程。该设计采用单片机、电机驱动及光电循迹等技术,保证小车在无人管理状态下,能按照预先设定的线路实现自动循迹功能。在电路结构设计中力求方便,可操作,…

go webapi上传文件

一、导入依赖 import "net/http" 我这里用到了Guid所以安装依赖 go get github.com/google/uuid 二、main.go package mainimport ("fmt""github.com/jmoiron/sqlx""github.com/tealeg/xlsx""log""path/filepath&q…

七彩云南文化旅游网站设计与实现

摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装七彩云南文化旅游网站软件来发挥其高效地信息处理的作用&am…

解决RabbitMQ设置x-max-length队列最大长度后不进入死信队列

解决RabbitMQ设置x-max-length队列最大长度后不进入死信队列 问题发现问题解决方法一:只监听死信队列,在死信队列里面处理业务逻辑方法二:修改预取值 问题发现 最近再学习RabbitMQ过程中,看到关于死信队列内容: 来自队…

计算机组成原理——存储系统

计算机组成原理——存储系统 存储器层次结构 存储器层次结构如下: 寄存器(CPU)Cache(高速缓冲存储器)主存磁盘磁带、光盘等 按照上述层次结构,自下而上速度依次增快、容量相对依次渐小、造价越来越高昂…

OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【文件系统】上

往期知识点记录: 鸿蒙(HarmonyOS)应用层开发(北向)知识点汇总 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~ 子系统开发内核 轻量系统内核(LiteOS-M) 轻量系统内核&#…

锂电池基础知识

1. 电池的发展史 电池是将化学能转变为电能的装置,通过电池内部的化学反应向外部提供直流电能 1800年Vote伏打电堆 1835年英国Daniel丹尼尔电池 1859年法国Plante铅酸蓄电池 1866年法国Leclanche锌锰电池 1899年瑞典Jungner镍镉电池 1950年Urry碱性电池 1990年索尼…

鸿蒙OpenHarmony【轻量系统内核扩展组件(C++支持)】子系统开发

C支持 基本概念 C作为目前使用最广泛的编程语言之一,支持类、封装、重载等特性,是在C语言基础上开发的一种面向对象的编程语言。 运行机制 C代码的识别主要由编译器支持,系统主要对全局对象进行构造函数调用,进行初始化操作。…

【漏洞复现】用友 NC-Cloud queryStaffByName Sql注入漏洞

免责声明: 本文内容旨在提供有关特定漏洞或安全漏洞的信息,以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步,并非出于任何恶意目的。阅读者应该明白,在利用本文提到的漏洞信息或进行相关测…