《HTTP》初识与摘要

《HTTP》初识与摘要

基础知识

HTTP

HTTP,是Hyper Text Transfer ProTocol的简写,中文名叫做:超文本传输协议,是实现了web服务器和客户端之间的通信,是互联网上最广泛的通讯协议,换句话说,就是平台访问网页,请求信息,提交表单等等都是通过的http协议;

HTTP的每一个请求都是独立的,相互之间没有办法获取信息,或者说是没有办法存储状态,在实际情况中,登录前和登录后,开通会员和未开通会员等等这些状态对网页产生的影响明显不同,因此为了存储状态以便有更好的用户体验便有了:Cookie,Session,Local Storage

HTTPS

HTTPS,是Hyper Text Transfer ProTocol over SecureSocket Layer的简写,中文叫做:超文本传输安全协议;HTTPS也是基于HTTP进行传输数据,区别在于:HTTPS会使用SSL(安全套接字协议)/TLS(传输层安全性协议)对发送的数据进行加密,实际开发中主要应用于比较敏感的通讯,例如:支付交易等;

常用请求方法

GET(最常用)

请求类型是:GET,代表请求指定的页面信息,并返回实体主体;

PSOT(最常用)

请求类型是:POST,想指定资源提交数据进行处理请求,比如填写了一个表单,按后台指定格式将数据向服务器地址提交;

PUT

请求类型是:PUT,从客户端向服务器传输的数据取代指定的文档内容;

DELETE

请求类型是:DELETE,请求服务器删除指定的内容;

**注意:**提交数据时具体使用的方法,通常是定义接口的人决定的,比如后台开发者会定义好需要使用什么样的请求方法提交数据,前端开发人员在提交数据时,必须严格遵守需求,如果定义了使用的是GET请求获取数据,那就必须使用GET请求获取,不能私自改成POST;

报文

什么是报文

简单的说:就是指定格式的多行数据,组成的字符串文本,用于客户端和服务器之间的数据通信;

报文又分:请求报文响应报文,请求报文是客户端向服务器请求数据是发送的,响应报文是服务器得到请求后,向客户端回应发送的,请求报文的格式包含:请求行+请求头+请求体,响应报文的格式包含:响应行+响应头+响应体
**

请求报文

示例

下例是从网上找到的图片
在这里插入图片描述
①是请求方法,最常用的就是上文注释的GET和POST。
②是请求对应的URL地址,它和报文头的Host属性组成完整的请求URL(不清楚什么是host的,可以打开网页控制台,输入location.host打印一下看看);
③是协议名称及版本号。
以上内容组成了请求行

④是HTTP的报文头,报文头包含若干个属性,格式为“属性名:属性值”,服务端据此获取客户端的信息。

⑤是报文体,它和报文头之间是有一行空行的,它将一个页面表单中的组件值通过param1=value1&param2=value2的键值对形式编码成一个格式化串,它承载多个请求参数的数据。不但报文体可以传递请求参数,请求URL也可以通过类似于“/chapter15/user.html? param1=value1&param2=value2”的方式传递请求参数。

对上文图片进行归类之后,可以得到大致的一张结构图
在这里插入图片描述

请求头

通过示例知道,请求头是由键值对组成的,而它的属性名一般包含以下内容:

  • Cookies:在发送请求的时候,HTTP会将保存在该域名下的所有Cookie值都发送到服务端;
  • Accept-XXX:指定客户端可以接收的内容类型,比如上例中的Accept-language,指定语言类型是zh-CN;
  • Content-Type:指定资源的类型,比如是application/json(json格式),或者是text/html(html格式),又比如是上例中的application/x-www-form-urlencoded(表单默认的提交数据的格式);
  • Content-Length:请求的内容长度;
  • Authorization:授权证书;
  • User-Agent:用户代理;
  • Referrer:链接来源地址;

响应报文

示例


①报文协议及版本;
②状态码及状态描述,从状态码代表本次请求的最终结果,其值是有规定的,不同的状态码代表不同的含义,比如最常见的404,代表页面没找到;
③响应报文头,也是由多个属性组成;
④响应报文体,同样和请求报文一样,响应报文体和报文头中间又一行空格,这部分才是我们真正需求的,是对我们的请求作出的回应,请求的内容也就是包含在这部分里;

响应头

  • Server:服务器名字;
  • Set-Cookie:设置和页面关联的Cookie;
  • Content-Type:资源类型,和请求头中的类型一样
  • Content-Length:内容长度;
  • Date:当前的GMT时间;

状态码

定义

  • 1xx,已接受,代表请求以及被接受,需要继续处理;
  • 2xx,处理成功,代表请求已成功被服务器接收,理解,并接受;
  • 3xx,重定向到其他地方,它让客户端再发起一个请求已完成整个处理;
  • 4xx,处理发生错误,错误在客户端,比如请求了一个不存在的资源,客户端未被授权,禁止访问等;
  • 5xx,处理发生错误,错误在服务端,比如服务器抛出异常,HTTP版本不支持等;

常见状态码:

  • 200(OK):请求成功;
  • 201(Created):请求以及被实现,而且又一个新的资源已经更具请求的需要而被创建;
  • 301(See Over):重定向到其它地方;
  • 304(Not Modified):该资源在上次请求之后没有任何修改,通常用于缓存机制;
  • 400(Bad Request):语义错误或者请求参数错误;
  • 403(Forbidden):客户端未能获得授权;
  • 404(Not Found):在服务端没有找到请求的资源;
  • 500(Internal Server Error):服务器抛出了一个异常,导致服务段无法完成对请求的处理;

浏览器查看

随便找个网站,打开控制台,找到“network”一栏,刷新页面后,可以看到所有请求,
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/zy21131437/article/details/106423448