首页 > 其他分享 >HTTP协议详解

HTTP协议详解

时间:2022-10-28 00:45:08浏览次数:35  
标签:协议 HTTP 请求 响应 详解 服务器 连接 客户端

1. HTTP协议简介

  HTTP协议,俗称超文本传输协议,是一种用于分布式、协作式的超媒体信息系统的应用层协议,是万维网的数据通信的基础。目前存在着HTTP1.0、HTTP1.1和HTTP2.0。

  HTTP1.0的特点:

    1. 一次TCP连接只能处理一个请求,响应结束,连接立即关闭,长连接需要手动设置keep-alive参数来建立;

    2. 不支持发送header信息,造成浪费带宽的现象,并且不支持断点续传功能;

    3. 不存在host域,在1.0中认为每台服务器都绑定一个唯一的IP地址。

    3. 判断缓存的标准只有if-Modified-Since和Expires,太单一。

  HTTP1.1的特点:

    1. 支持长连接,默认开启keep-alive,即连接不会立即断开,而是在指定的时间内没有请求或响应时才会断开,一个TCP连接可以传送多个HTTP请求和响应。

    2. 支持发送header信息,如果服务器确认客户端有权限请求,则开始发送body体,否则不需要发送body,一定程度上节约了带宽。

    3. 存在host域,即服务器上可以存在多个虚拟主机,他们共享一个IP地址,客户端请求的时候必须带上host域。

    4. 缓存处理标准更多,1.1引入Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略。

    5. 新增了24个错误状态响应码,更加利于错误通知的管理。

  HTTP2.0的特点:

    1. 多路复用,可以在同一个TCP连接并发处理多个请求,相比1.1创建多TCP来处理并发请求的方法,节约了创建TCP连接的成本开销;

    2. 头部数据压缩,2.0使用HPACK算法对header的数据进行压缩,数据体积小,传输速度更快; 

    3. 服务器推送资源,在1.1中只有客户端发送请求,服务器才会进行响应,不存在服务器没有收到请求而去自动发送响应,这种机制有时候会造成很大的延迟,2.0引入server push,它允许服务器在浏览器请求之前推送资源给浏览器,这样客户端就可以直接从本地加载资源,更加快速。

 

2. HTTP协议概述

  HTTP是客户端到服务端请求和响应的标准。客户端通过使用浏览器、网络爬虫或者其他工具,向服务器发起一个HTTP请求(请求报文中包括请求的方法、URL、版本协议、请求头部和请求数据),然后TCP进行三次握手来创建连接,服务器监听到客户端发送过来的请求,给客户端返回一个响应(响应中包括协议版本、响应状态、服务器信息、响应头部和响应数据)。

 

3. HTTP的工作原理

  1. 浏览器通过URL域名向服务器发送一个请求,请求中包含请求行、请求头部、空行和请求数据四个部分;

  2. 在应用层中首先通过DNS协议解析域名,获取对应的IP地址;

  3. 解析出IP地址后,根据IP和服务器默认端口号80,由传输层的TCP协议向服务器发出三次握手,建立连接;

  4. 服务器监听到浏览器的请求后,做出响应,并发请求的资源发送给浏览器;

  5. 响应结束,释放TCP连接;

  6. 浏览器接收数据并进行相应操作。

 

4. HTTP的特点:

  1. 无状态保存

    HTTP是一种不保存状态,即无状态协议。HTTP协议自身不对请求和响应之间的通信状态进行保存。即每一次连接都是新的,和上一次连接没有任何关联。因为请求—响应机制,没发生一次请求,就伴随着一次响应,为了更大效率的处理大量事务(一次HTTP请求过程称为事务),HTTP协议本身不保留之前一切的请求或响应报文的信息。但是随着互联网业务不断发展,很多场景需要保存浏览器的状态,HTTP1.1于是引入了Cookie技术,浏览器可以通过Cookie来管理状态,但是它还是属于无状态协议。

  2. 无连接

    无连接的含义是每次连接只能处理一个请求,服务收到请求并做出响应后,连接自动断开。这种方式的好处是每次完成请求后,服务器和客户端的连接就断开了,可以提高并发性能。无连接分为两种方式:一种是1.0版本时候的服务器响应请求之后,连接就直接断开了;另一种是1.1版本他们之间的连接并不是直接断开,而是等个几秒钟,在这时间内,如果客户端有后续的请求,则在原来的连接通道继续来收发消息,如果客户端没有发送新的请求,则连接断开,这样的好处是减少了短时间内建立连接的次数,提高了效率,因为TCP建立连接也是需要耗时的。

标签:协议,HTTP,请求,响应,详解,服务器,连接,客户端
From: https://www.cnblogs.com/chf333/p/16834471.html

相关文章

  • (1028) 权限,chmod、chgrp、chown详解
    https://www.cnblogs.com/Berryxiong/p/6193866.html 例1:$ chgrp - Rbook /opt/local /book改变/opt/local/book/及其子目录下的所有文件的属组为book。 ......
  • HTTP的前世今生
    HTTP的前世今生HTTP的历史诞生前1989年,蒂姆·伯纳斯·李提出了在互联网上构建超链接文档系统的构想,确立了三项关键技术。URI:统一资源标识符,作为互联网上资源的唯一......
  • 【XMLHttpRequest】
    constxhr=newXMLHttpRequest();xhr.open("POST","/menu/list/111",false);xhr.onload=function(){if(xhr.readyState===4&&xhr.status===200){//xhr.......
  • Linux vmstat命令实战详解
    vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix......
  • HTTP状态 500 -内部服务器错误
    问题描述:  实例化Servlet类的时候出现了如下异常问题经过查阅资料发现:是由于tomcat服务器版本和JRE版本不匹配问题造成的Tomcat服务器版本和JDK匹配版本如下表:根据上表下......
  • Docker详解
    Docker简介【1】Docker是一个开源的容器引擎,它有助于更快地交付应用。Docker可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。使用Docker可更......
  • 浅尝 ECDHE 协议流程
    前言ECDHE我之前是听都没听过,但是新业务需要对前后端通信进行加密,经过大佬推荐才知道有这个东西,经过几天的学习和踩坑......
  • RESTful API详解
    简述RESTfulAPI是符合REST风格的webAPI,REST是一种设计风格。全称是REpresentationalStateTransfer,中文叫表述性状态转移。用一句话来说,RESTfulAPI就是:......
  • http和https的区别
    http也就是超文本传输协议,是互联网上应用最为广泛的一种传输协议,是以明文方式发送消息的,所以有不发分子截取了web浏览器和服务器之间的传输报文,就可以直接获得信息,可想而知......
  • 二段式提交协议和三段式提交协议(2PC和3PC)--转
    分布式基础知识分布式的特点:分布性、对等性、并发性、缺乏全局时钟、故障总会发生分布式环境下的各种问题:通讯异常、网络分区、成功失败超时三态、节点故障事务一致性......