http

本文详细介绍了HTTP协议相关知识。包括其无状态、无连接等特点,请求和响应报文的组成,get、post等方法及区别,状态码分类,还阐述了HTTP1.1支持的持久连接和管线化技术,如持久连接可避免重复建立连接,管线化能打包请求和响应。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:http协议类

1.http协议的特点:无状态【没法区分两次连接者的身份】,无连接【连接一次就会断掉,不会保持连接】,灵活【通过HTTP完成不同资源的传输】,简单快速【统一资源符,URI是固定的,访问某一个资源的时候我只要输入对应的URI就可以找到对应的资源】

2.http报文的组成方式:

  • 请求报文:请求行【http方法,url,http协议,版本】,请求头【一些key,value值】,空行,请求体
  • 响应报文:状态行【协议,版本,状态码,响应状态】,响应头【一些key,value值】,空行,响应体

3.http方法

  • get    获取资源
  • post  传输资源
  • put    更新资源
  • delete  删除资源
  • head   获得报文首部

4.post和get的区别

  • get方法具有幂等性,post方法没有幂等性
  • get方法在浏览器回退的时候是无害的,但是POST 方法会再次提交请求
  • get方法会被浏览器主动缓存,post不会除非手动设置
  • get请求只能是url编码,但是post支持多种多种编码方式
  • get请求参数会完整的保存在浏览器历史记录里面,但是post中的参数不会被保留
  • get请求在url中传送的参数是有长度限制的但是post没有限制
  • 对于参数的数据类型,get只能接受ASCII字符,但是POST没有限制
  • GET 比POST 更加安全,因为参数直接暴露在URL 上面所以GET 不能用来传递敏感信息
  • GET参数通过url传递,post放在Request body中,并且对于火狐浏览器来说post方法会发送两次请求(一次用来发送请求头,一次用来发送请求体)

5.http状态码【这个太多了我在这里简单的赘述一下】

  • 1xx:指示信息-表示请求已接收,继续处理
  • 2xx:成功-表示请求已被成功接收
  • 3xx:重定向-要完成请求必须进行更新一步的操作
  • 4xx:客户端错误-请求有语法错误或者请求无法接受
  • 5xx:服务器错误-服务器未能实现合法的请求

6.什么是持久连接 【 HTTP1.1版本支持

keep-alive:让客户端的连接持续有效,当出现对服务器的后续请求时,keep-alive功能避免了建立或者重新连接

在说一下非持久连接:http采用的是"请求-应答"模式,就是普通模式,在非持久化连接的时候每个请求应答客户和服务器都要新建立一个连接,完成之后立即断开连接

7.什么是管线化【仅仅是HTTP1.1版本支持

(1)在使用持久连接的时候:完成下一次的请求的前提是完成上一次的请求响应

(2)管线化:不用等待响应可以将所有的请求打包全部发给服务器,服务器将所有的响应打包发给客户端

(3)需要注意的点:

  • 管线化通过持久化连接完成的
  • 仅http1.1支持此技术
  • 只有GET还有HEAD方法支持管线化, 但是对于POST有所限制
  • 初次连接的时候不要启动管线机制,因为对方服务器不一定支持HTTP1.1版本的协议
  • 管线化不会影响响应到来的顺序

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值