http简介

HTTP简介

HTTP协议

HTTP是超文本传输协议(hypertext transfer protocol),是TCP/IP协议的一个应用层协议,用于定义web浏览器与web服务器之间交换数据的过程。客户端(client)连上web服务器后,想获得web服务器中的某个web资源,需要遵循一定的通讯格式,HTTP协议就是用于定义web客户端和web服务器间通讯的格式。

HTTP 1.0和HTTP 1.1的区别

  • 在http 1.0协议中,客户端与web服务器建立连接之后,只能获得一个web资源。
  • 在http 1.1协议中,允许客户端与web服务器建立连接后,只在一个连接上获取多个web资源。

HTTP报文

HTTP报文是HTTP应用程序之间发送的数据块。这些数据块以一些文本形式的元信息(meta-information)开头,这些信息描述了报文的内容及含义,后面跟可选的数据模块(由一个空行分隔)。

HTTP使用术语流入(inbound)和流出(outbound)来描述HTTP事务处理(transaction)的方向
- 流入:流向服务器
- 流出:流出服务器

报文始终向下游(downstream)流动,所有报文的发送者都在接受者的上游(upstream)

HTTP请求(request)

请求报文请求服务器对资源进行一些操作。
客户端连接上服务器之后,向服务器请求某个web资源,称之为客户端向web服务器发送了一个HTTP请求。
一个完整的HTTP请求包括如下内容:
- 对报文进行描述的起始行(start line)
- 包含属性的首部块(header)(消息头)
- 包含数据的主体(body)(可选)

请求报文格式:

<method> <request-URL> <version>(CRLF)
<headers>(CRLF)
(CRLF)
<entity-body>(CRLF)

HTTP_request “HTTP请求报文”

起始行(start line)

请求报文的起始行或称为请求行,包含了一个方法、一个请求URL和HTTP版本号。
- 方法描述了服务器应该执行的操作
- 请求URL描述了要对哪个资源执行这个方法
- HTTP版本号告知服务器,客户端使用的是哪种HTTP

常用HTTP方法

方法用来告诉服务器做什么事情,浏览器的默认请求方法为GET

方法 描述 是否包含主体
GET 从服务器获取一份文档
HEAD 只从服务器获取文档的首部
POST 向服务器发送需要处理的数据
PUT 将请求的主体部分存储在服务器上
TRACE 对可能经过代理服务器传送到服务器上去的报文进行追踪
OPTIONS 决定可以在服务器上执行那些方法
DELETE 从服务器上删除一份文档
扩展方法 对HTTP规范的扩展,由服务器自己实现

HTTP常用请求首部块

键值对列表,请求首部块中可以包含 通用首部、请求首部、实体首部、扩展首部

首部名称 描述 首部实例
accept 浏览器通过这个头告诉服务器,它所支持的数据类型 Accept: application/x-ms-application, image/jpeg
Accept-Charset 浏览器通过这个头告诉服务器,它支持哪种字符集 Accept-Charset:utf-8
Accept-Encoding 浏览器通过这个头告诉服务器,支持的压缩格式 accept-encoding:gzip, deflate, br
Host 浏览器通过这个头告诉服务器,想访问哪台主机 Host: localhost:8080
If-Modified-Since 浏览器通过这个头告诉服务器,缓存数据的时间
Referer 浏览器通过这个头告诉服务器,客户机是哪个页面来的 防盗链
Connection 浏览器通过这个头告诉服务器,请求完后是断开链接还是何持链接 Connection: Keep-Alive

HTTP响应(response)

响应报文承载了状态信息和操作产生的所有结果数据,将其返回给客户端。

一个HTTP响应代表服务器向客户端回送的数据,包括:
- 用于描述服务器对请求的处理结果的状态行
- 消息头
- 实体内容

响应报文格式:

<version> <status> <reason-phrase>(CRLF)
<headers>(CRLF)
(CRLF)
<entity-body>(CRLF)

HTTP响应报文

起始行(start line)

响应报文的起始行或称为响应行,包含了响应报文使用的HTTP版本、数字状态码,以及描述操作状态的文本形式的原因短语。

常用响应状态码

状态码告诉客户端发生了什么

整体范围 已定义范围 分类 含义
100~199 100~101 信息成功 表示成功接收请求,要求客户端继续提交下一次请求才能完成整个过程
200~299 200~206 成功 表示成功接收请求并已完成整个处理过程,常用200
300~399 300~305 重定向 为完成请求,客户需进一步细化请求。例如,请求的资源已经移动到一个新的地址,常用302、304
400~499 400~415 客户端错误 客户端的请求有错误,常用404
500~599 500~505 服务器错误 服务器端出现错误,常用500
- - - -

HTTP常用响应头

响应首部可以包含 通用首部、响应首部、实体首部、扩展首部

首部名称 描述 首部实例
Location 服务器通过这个头,来告诉浏览器跳到哪里
Server 服务器通过这个头,告诉浏览器服务器的型号 server:HTTP server (unknown)
Content-Encoding 服务器通过这个头,告诉浏览器,数据的压缩格式 content-encoding:gzip
Content-Length 服务器通过这个头,告诉浏览器回送数据的长度 content-length:212
Content-Language 服务器通过这个头,告诉浏览器语言环境
Content-Type 服务器通过这个头,告诉浏览器回送数据的类型 content-type:application/json; charset=UTF-8
Refresh 服务器通过这个头,告诉浏览器定时刷新
Content-Disposition 服务器通过这个头,告诉浏览器以下载方式打数据 content-disposition:attachment; filename=”f.txt”
Transfer-Encoding 服务器通过这个头,告诉浏览器数据是以分块方式回送的
Expires 控制浏览器不要缓存 expires:Fri, 01 Jan 1990 00:00:00 GMT
Cache-Control Cache-Control: no-cache
Pragma Pragma: no-cache
©️2020 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值