HTTP协议基本知识

什么是HTTP协议

HTTP (全称为 “超文本传输协议”) 是一种应用非常广泛的应用层协议。
很难理解对吗?
那么,上图:
在这里插入图片描述
图内是浏览器控制台中打印出的页面调用接口的一部分。而test这个接口就是未加密的HTTP请求,
那么,我们从图中可以看出,HTTP请求涉及到三个大的模块。
请求行url,请求头部(request headers),响应头部(response headers);
这三者就是HTTP协议格式的基本元素。
看图:
在这里插入图片描述
HTTP协议中,无论是请求头还是响应头,数据格式都是K-V格式的。
首先说Request。

请求行

以此为例:https://dlswbr.baidu.com/heicha/mw/abclite-2036-s.js
Method:请求类型(GET,POST,delete,put…),实际上HTTP支持的方法很多,并不只是我们常用的
涉及到增删改查的请求类型,感兴趣的可以去了解下。
在这里插入图片描述
URL:https://dlswbr.baidu.com/heicha/mw/abclite-2036-s.js
dlswbr.baidu.com:资源在哪台主机上——域名 (domain) 或者ip来体现一主机 (host)
端口 (port):可有可无,主机上的哪个进程去获取资源
资源路径/路径 (path):互联网上的每一个文件/资源都是唯一的
在这里插入图片描述

Request

在这里插入图片描述

请求头本身数据格式为Key-value格式,且很多参数是可不用的。这里只介绍几个常见的参数。
HTTP最常见的请求头如下:

     Accept:浏览器可接受的MIME类型;

     Accept-Charset:浏览器可接受的字符集;

     Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip。Servlet能够向支持gzip的浏览器返回经gzip编码的HTML页面。许多情形下这可以减少5到10倍的下载时间;

     Accept-Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到;

     Authorization:授权信息,通常出现在对服务器发送的WWW-Authenticate头的应答中;

     Connection:表示是否需要持久连接。如果Servlet看到这里的值为“Keep-Alive”,或者看到请求使用的是HTTP 1.1(HTTP 1.1默认进行持久连接),它就可以利用持久连接的优点,当页面包含多个元素时(例如Applet,图片),显著地减少下载所需要的时间。要实现这一点,Servlet需要在应答中发送一个Content-Length头,最简单的实现方法是:先把内容写入ByteArrayOutputStream,然后在正式写出内容之前计算它的大小;

     Content-Length:表示请求消息正文的长度;

     Cookie:这是最重要的请求头信息之一;

     From:请求发送者的email地址,由一些特殊的Web客户程序使用,浏览器不会用到它;

     Host:初始URL中的主机和端口;

     If-Modified-Since:只有当所请求的内容在指定的日期之后又经过修改才返回它,否则返回304“Not Modified”应答;

     Pragma:指定“no-cache”值表示服务器必须返回一个刷新后的文档,即使它是代理服务器而且已经有了页面的本地拷贝;

     Referer:包含一个URL,用户从该URL代表的页面出发访问当前请求的页面。

     User-Agent:浏览器类型,如果Servlet返回的内容与浏览器类型有关则该值非常有用;

     UA-Pixels,UA-Color,UA-OS,UA-CPU:由某些版本的IE浏览器所发送的非标准的请求头,表示屏幕大小、颜色深度、操作系统和CPU类型。

此外,前端可以在请求头中自定义参数,比如token,tenantId等等,但是,我们要注意,请求头中自定义参数必须要和后端协同使用,否则请求报错,因为添加自定义请求头参数必定会使请求变为非简单请求,感兴趣的朋友可以去了解下。

response

在这里插入图片描述

响应头包含三块内容,响应首行,协议头(response header),空行,响应正文(body)

响应首行有什么?

版本号:http协议版本
状态码:表示接口响应状态(常见的有200,404,500等等)
状态码解释:OK

协议头

响应报头的基本格式和请求报头的格式基本一致,这里不多说。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值