HTTP协议(旧)

参考:CyC2018

HTTP协议概述

  1. 超文本传输协议(HyperText Transfer Protocol)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。
  2. HTTP是一个客户端和服务端请求与应答的标准。客户端发起一个HTTP请求到服务器上指定端口(HTTP协议默认端口为80)。我们称这个客户端为用户代理(user-agent)。应答的服务器上储存着一些资源,我们称这个服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在多个中间层,如代理服务器、网关或隧道
  3. HTTP假定其下层协议(传输层)提供可靠的传输。因此,任何提供这种保证的协议都能被使用。因此常常是TCP作为其传输层。
  4. HTTP协议定义Web客户端如何从web服务器请求Web页面,以及服务器如何把web页面传送给客户端。

HTTP工作原理

HTTP采用请求/响应模型。客户端向服务器发送一个请求报文,请求报文包括:请求方法、URL、协议版本、请求头部和请求数据。服务器发送响应报文,响应报文包括:协议的版本、状态码、服务器信息、响应头部和响应数据。

以下是HTTP工作步骤:

  1. 客户端连接到web服务器
    HTTP客户端(通常是浏览器)与web服务器的HTTP端口(默认为80),建立一个TCP套接字连接。
  2. 发送HTTP请求
    通过TCP套接字,客户端向web服务器发送HTTP请求报文。
  3. 服务器接收请求并返回HTTP响应
    web服务器解析请求,定位请求资源。服务端将资源副本当成响应数据,向客户端返回HTTP响应:包括状态行、响应头部、空行和响应数据。
  4. 释放连接TCP连接
    若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求。
  5. 客户端浏览器解析相应内容
    浏览器首先解析状态行,查看表明请求是否成功的状态码;
    解析每一个响应头,根据HTML语法对齐进行格式化,并在浏览器窗口显示。

HTTP请求报文

请求报文内容如下:


在这里插入图片描述
在这里插入图片描述

请求方法

位于请求报文的第一行。

  1. GET

获取资源

  1. POST

传输实体主体,POST主要用于传输数据,而GET主要用于获取资源。

  1. PUT :

上传文件,不带验证机制,不安全

  1. DELETE

与PUT功能相反,也不带验证机制

  1. CONNECT

要求在与服务器通信时建立隧道

使用 SSL(Secure Sockets Layer,安全套接层)和 TLS(Transport Layer Security,传输层安全)协议把通信内容加密后经网络隧道传输。


在这里插入图片描述

  1. 其他

HEAD:获取报文首部,和GET类似,但不返回报文实体主体部分,主要用于确认URL的有效性以及资源的更新时间。
PATCH:对资源进行部分修改
OPTIONS:查询支持的请求方法,返回:GET、POST之类的。

请求首部字段

首部字段名说明
Accept用户代理可处理的媒体类型

GET与POST的区别

参考:浅谈HTTP中Get与Post的区别

HTTP响应报文

响应报文内容如下:


在这里插入图片描述

HTTP状态码

状态码类别含义
1XX信息性状态码接收的请求正在处理
2XX成功状态码请求正常处理完毕
3XX重定向状态码需要附加操作以完成请求
4XX客户端错误码服务器无法处理请求
5XX服务器错误码服务器处理请求时出错

几个关键的状态码
100:Continue,表明目前一切正常
200:OK,请求成功
204:No Content:请求已经成功处理,但是返回的响应报文不包含实体的主体部分
301:永久性重定向
302:临时性重定向
303:与302功能相同,但3003要求浏览器采取GET方法
304:若请求报文中包含一些条件,例如:if-match等,如果 不满足条件,就会返回304.
400:请求报文语法错误
401:表明发送的请求需要有认证信息,若之前已发过一次,则表示认证失败
404:No found
500:服务器正在执行请求时出错
503:服务器超载或正在停机维护

响应首部字段

首部字段名说明
Accept用户代理可处理的媒体类型

HTTP首部

有四种类型的首部字段:通用首部字段,请求首部字段、响应首部字段和实体首部字段。

通用首部字段
首部字段名说明
cache-Control控制缓存的行为
Connection控制不再转发给代理的首部字段、管理持久连接
Date响应报文生成的时间
Transfer-Encoding报文主体的编码方式
实体首部字段
首部字段名说明
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值