http协议发送与接收

HTTP协议概念、特点及GET与POST区别

目录

1.HTTP概念:

1. 客户端和服务器模型

2. 请求-响应周期

3. URL(统一资源定位符)

4. 方法(HTTP Methods)

5. 状态码(HTTP Status Codes)

6. 报文(HTTP Messages)

7. 头部字段(HTTP Headers)

8. 消息体(Message Body)

9. 无状态(Stateless)

10. 安全性

11. 缓存(Caching)

12. 版本

2.http协议3个特点:

简单性:

无状态性:

可扩展性:

2. http协议格式:

请求消息(Request Message)

请求行(Request Line)

请求头(Headers)

空行

消息体(可选)

示例:

响应消息(Response Message)

状态行(Status Line)

响应头(Headers)

空行

响应体

示例:

3.GET方法和POST方法的区别?

用途

2. 数据传输方式

3. 数据大小

4. 安全性

5. 缓存和历史记录

6. 幂等性

7. 可缓存性

8. 书签和分享

9. 编码类型

10. 应用场景


1.HTTP概念:

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

1. 客户端和服务器模型

  • 客户端:通常是用户的Web浏览器,它发送HTTP请求到服务器。
  • 服务器:通常是Web服务器,它接收HTTP请求并返回响应。

2. 请求-响应周期

  • 请求:客户端发送到服务器的数据包,包含对资源的操作请求。
  • 响应:服务器返回给客户端的数据包,包含请求的状态和可能的数据。

3. URL(统一资源定位符)

  • 用于定位互联网上的资源,通常包含协议类型(如HTTP或HTTPS)、服务器地址、端口号、路径和查询参数。

4. 方法(HTTP Methods)

  • 定义了对资源的操作类型,如GET(获取资源)、POST(提交数据)、PUT(更新资源)、DELETE(删除资源)等。

5. 状态码(HTTP Status Codes)

  • 服务器返回的数字代码,指示请求的结果,如200(成功)、404(未找到)、500(服务器错误)等。

6. 报文(HTTP Messages)

  • HTTP请求和响应的基本单位,包含起始行、头部字段和可选的消息体。

7. 头部字段(HTTP Headers)

  • 提供关于请求或响应的额外信息,如内容类型(Content-Type)、内容长度(Content-Length)、缓存控制(Cache-Control)等。

8. 消息体(Message Body)

  • HTTP请求或响应的可选部分,可以包含数据,如HTML页面、图片、JSON等。

9. 无状态(Stateless)

  • HTTP协议本身是无状态的,意味着服务器不会保存关于客户端的任何信息。为了维持状态,通常会使用cookies或其他机制。

10. 安全性

  • HTTP:不加密,数据可能被窃听。
  • HTTPS:HTTP的安全版本,使用SSL/TLS加密,增加了数据传输的安全性。

11. 缓存(Caching)

  • HTTP允许缓存响应,以便在未来请求相同资源时减少延迟和网络流量。

12. 版本

  • HTTP/1.0:第一个广泛使用的版本,但有一些性能问题。
  • HTTP/1.1:改进了HTTP/1.0,包括持久连接、虚拟主机支持等。
  • HTTP/2:进一步优化性能,包括头部压缩、多路复用等。
  • HTTP/3:基于QUIC协议,旨在解决TCP的一些问题,提高速度和安全性。

2.http协议3个特点:

  1. 简单性

    • HTTP协议的设计理念是简单易读,请求和响应的结构都是文本格式,这使得开发者可以轻松地阅读和编写。
    • 协议的简单性也意味着它易于实现和使用,这也是HTTP能够快速普及的原因之一。
  2. 无状态性

    • HTTP协议本身是无状态的,这意味着每个请求都是独立的,服务器不会保存任何关于客户端之前请求的信息。
    • 无状态性简化了服务器的设计,但同时也带来了一些问题,比如无法维持用户会话。为了解决这个问题,引入了cookies和session等机制来跟踪用户状态。
  3. 可扩展性

    • HTTP协议具有很好的可扩展性,它允许通过定义新的方法和头部字段来扩展其功能。
    • 这种可扩展性使得HTTP能够适应互联网的快速发展,例如,引入了HTTP/2来提高性能,以及HTTP/3来进一步优化传输效率。

2. http协议格式:

请求消息(Request Message)

  1. 请求行(Request Line)

    • 方法:如GET、POST、PUT、DELETE等,表明对资源的操作。
    • URI:统一资源标识符,指明请求的资源。
    • HTTP版本:如HTTP/1.1或HTTP/2。
  2. 请求头(Headers)

    • 包含了一系列的键值对,如Host、User-Agent、Accept等,提供了关于客户端环境、请求的内容和通信选项等信息。
  3. 空行

    • 请求头和消息体之间必须有一个空行,用于分隔头部和内容。
  4. 消息体(可选)

    • 请求的参数或者发送的数据,如POST请求中的表单数据。

示例:

POST /form.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Content-Type: application/x-www-form-urlencoded
Content-Length: 27

field1=value1&field2=value2

响应消息(Response Message)

  1. 状态行(Status Line)

    • HTTP版本:如HTTP/1.1。
    • 状态码:如200表示成功,404表示未找到。
    • 状态短语:如OK、Not Found等,提供状态码的文本描述。
  2. 响应头(Headers)

    • 类似于请求头,包含了关于响应的信息,如Content-Type、Content-Length、Server等。
  3. 空行

    • 响应头和响应体之间必须有一个空行。
  4. 响应体

    • 服务器返回的资源内容,如HTML页面、图片等。

示例:

HTTP/1.1 200 OK
Date: Tue, 15 Nov 2022 08:12:31 GMT
Server: Apache/2.4.41 (Ubuntu)
Content-Type: text/html; charset=UTF-8
Content-Length: 126

<html>
<head>
<title>Example Page</title>
</head>
<body>
Hello, World!
</body>
</html>

3.GET方法和POST方法的区别?

用途

  • GET:通常用于请求获取服务器上的资源。它应该是安全的和幂等的,意味着它不会改变资源的状态。
  • POST:通常用于向服务器提交数据,例如提交表单数据或者上传文件。它通常不是安全的也不是幂等的,可以改变资源的状态。

2. 数据传输方式

  • GET:将请求的数据附加在URL之后,以查询字符串的形式发送。
  • POST:将请求的数据放置在HTTP请求的消息体(body)中发送。

3. 数据大小

  • GET:由于URL长度限制,传输的数据量有限。
  • POST:可以传输大量数据,理论上不受限制,但实际上可能会受到服务器配置的限制。

4. 安全性

  • GET:数据在URL中可见,因此不适合传输敏感信息,如密码。
  • POST:数据不会出现在URL中,更适合传输敏感信息。

5. 缓存和历史记录

  • GET:请求的URL可以被浏览器缓存,并且会保存在浏览器的历史记录中。
  • POST:不会被浏览器缓存,通常不会保存在浏览器的历史记录中。

6. 幂等性

  • GET:幂等的,多次执行相同的GET请求,资源的状态不会改变。
  • POST:不是幂等的,多次执行相同的POST请求可能会多次创建或修改资源。

7. 可缓存性

  • GET:可以被缓存,因为它是幂等的。
  • POST:通常不会被缓存。

8. 书签和分享

  • GET:请求的URL可以被书签收藏或分享。
  • POST:通常不能被书签收藏或分享。

9. 编码类型

  • GET:只能进行URL编码。
  • POST:支持多种编码类型,可以处理更复杂的数据类型,如二进制数据。

10. 应用场景

  • GET:适用于查询数据,如搜索请求。
  • POST:适用于提交数据,如表单提交。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值