HTTP协议

本文深入解析HTTP协议,涵盖请求方法如GET、POST,状态码如200、404,及HTTP头、请求体等内容。同时,介绍了HTTP2.0与HTTPS的安全特性,以及HTTP1.1的持久连接和管线化新特性。

一、网络通讯HTTP协议

HTTP协议是基于TCP协议出现的,在TCP的基础上规定了Request-Response的模型,决定了通讯必须由浏览器端发起的,首先来了解下HTTP协议的格式:

二、HTTP协议格式

HTTP协议大致可以分成以下部分:其中path是请求路径、version是固定的字符串,依次介绍下面的每个部分:
在这里插入图片描述
三、HTTP Method 请求方法

在requestline里面的方法部分,表示HTTP的操作类型,常见的几种请求方法如下:

  • GET:浏览器通过地址访问页面均属于get请求

  • POST:常见的表单提交

  • HEAD :跟get类似,区别在于只返回请求头

  • PUT:表示添加资源

  • DELETE:表示删除资源

  • CONNECT: 多用于HTTPS和WebSocket

  • OPTIONS

  • TRACE

四、HTTP Status code状态码

常见的状态码有以下几种:

  • 1xx:临时回应

  • 2xx:请求成功,如200

  • 3xx:请求目标有变化,如301和302表示临时和永久重定向,304表示客户端没有更新内容

  • 4xx;请求错误,如403无权限,404访问的资源不存在

  • 5xx:服务端错误,如500服务端错误,503服务端暂时错误等

五、HTTP HEAD(HTTP头)

HTTP头可以看做是一个键值对,在HTTP标准中,Request Header如下图:
在这里插入图片描述
Response Header如下图:
在这里插入图片描述
六、HTTP Request Body

HTTP请求的body主要用于表单的提交,常见的body格式:

  • application/json

  • application/x-www-form-urlencoded:使用form标签提交的html请求,默认产生

  • multipart/form-data:当有文件上传时,使用的格式

七、HTTPS

HTTPS=HTTP+加密处理(一般是SSL安全通信线路)+认证+完整性保护

  1. 客户使用https url访问服务器,则要求web 服务器建立SSL链接。
  2. web服务器接收到客户端的请求之后,会将网站的证书(证书中包含了公钥),返回或者说传输给客户端。
  3. 客户端和web服务器端开始协商SSL链接的安全等级,也就是加密等级。
  4. 客户端浏览器通过双方协商一致的安全等级,建立会话密钥,然后通过网站的公钥来加密会话密钥,并传送给网站。
    web服务器通过自己的私钥解密出会话密钥。
    web服务器通过会话密钥加密与客户端之间的通信。

八、HTTP2.0的新特性

  • http2.0是基于https的,天然具有安全特性,通过http2.0的特性可避免单纯使用https的性能下降

  • 采用二进制而非文本格式,二进制协议解析起来更高效

  • 采用多路复用,即为同一个tcp连接上可以建立多个http连接;另外多路复用中也支持了流的优先级,允许客户端告诉服务器哪些内容是更优先级的资源,可优先传输。

  • 使用报文头压缩,降低了开销

  • 可以让服务器主动向浏览器推送消息,支持服务端推送,也就是服务端可以对客户端有多个响应

九、HTTP1.1的新特性

  • 默认持久连接:使用了keep-alive的机制,将多个http请求合并为1个,它可以在传输数据后仍然保持连接,当客户端再次获得数据时,直接使用刚刚空闲下来的连接,而无需再次握手。低线路负载,提高传输速度。只要客户端/服务端中任意一端没有明确指出断开TCP连接,就一直保持连接,可以多次发送HTTP请求。

  • 管线化:客户端可以同时发送多个HTTP请求,而不用一个个等待响应。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值