当前位置: 首页 > article >正文

网络高级day03(Http)

目录

【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.kler.cn/a/320865.html

相关文章:

  • [Android]相关属性功能的裁剪
  • ChromeDriver 官方下载地址_测试自动化浏览器驱动
  • LLaMA-Factory全流程训练模型
  • 基于opencv制作GUI界面
  • 若点集A=B则A必能恒等变换地变为B=A这一几何常识推翻直线(平面)公理
  • 【C++】构造函数
  • 短信视频评论dy版提取,免COOKIE 手机版本介绍说明
  • 前端中CSS选择器权重的问题
  • AccessClient在MacOS14 (sonoma)闪退无法调用远程桌面
  • Ubuntu上如何优雅下载huggingface上某个gguf模型文件
  • 【HarmonyOS鸿蒙应用开发者高级认证争议题】以下关于Taskpool和Worker的描述正确的是
  • 突发,OpenAI CTO离职
  • k8s的一些命令
  • c# Expression<Func<T, T>>转成实体
  • javascript中new操作符的工作原理
  • 使用lodash库实现防抖和节流
  • Easy Excel从入门到精通!!!
  • pg入门11-pg中的publications是什么
  • SpringBoot整合Lombok插件与使用说明
  • 微信小程序showLoading ,showToast ,hideLoading连续调用出现showLoading 不关闭的情况记录
  • SpringDoc OpenApi学习笔记
  • GO Ants 学习
  • C++——将数组a[5]={-1,2,9,-5,7}中小于0的元素置成0。并将其结果输出(要求:用数组名作为函数的参数来实现)
  • C++游戏
  • Linux部署python web项目Flask + gunicorn + nginx
  • 《经典图论算法》约翰逊算法(Johnson)