_ http

一、请求行 url (uniform resource locator)

定义: 统一资源定位符,用于定义服务器资源
示例:https://search.js.com:443/search?keyword=oneplus&sport=3
协议名:https:
主机名:search.js.com
端口号:443(可省)
路径:search
查询字符串:?keyword=oneplus&sport=3

访问网页:
1、判断缓存 ( 浏览器缓存,系统缓存,HOST文件 )
2、DNS域名解析(域名转换为IP地址)根据IP地址向服务器发起http请求:本地DNS服务器 - 根服务器 - com顶级域名服务器 - 网站服务器
3、tcp三次握手建立链接
4、tcp四次挥手断开链接


二、请求体

用于传递表单数据,登录,注册 ,常见于POST

Restful API: 将每一个URL当作一个唯一的资源,使得Web应用程序具有更好的可扩展性、可维护性和可重用性;
请求方法: GET 获取、POST 新增、PUT / PATCH 更新、ELETE 删除
差异点:
传统:/api/list?pageIndex=2
Restful:/api/list/2( 不使用url )

GET POST 区别:
GET参数在URL中,POST参数在请求体中;
GET请求参数长度限制2K,POST没有长度限制;
GET请求是幂等的,多次请求返回的结果是相同的,而POST不是。
GET一般用于获取资源;而POST一般用于提交数据
POST相对安全


三、请求头 - Request Headers

常见HTTP标头:
参考文档https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers

Accpet:浏览器可接受的数据格式
Accept-Encoding:浏览器可接受的压缩算法,如GZIP
Connection:keep-avlie 一次TCP链接重复使用
cookie
Host:指明了请求将要发送到的服务器主机名和端口号
User-Agent(简称UA):浏览器信息
Content-Type:发送数据格式,如 application/json


四、响应体

在HTTP请求和响应中,响应体是指服务器返回给客户端的实际数据部分;
它通常包含HTML、CSS、JavaScript、JSON、XML等各种格式的文本和二进制数据

响应行状态码:
1xx 服务器收到请求(不常用)
2xx 成功响应:200OK、201创建成功、204不带响应头 ;
3xx 重定向:301永远重定向、302临时重定向、304资源未被修改;(浏览器自动跳转响应头URL地址)
4xx 客户端错误 :401未授权、403禁止请求/无权限(forbidden)、404找不到资源(NotFuoud)
5xx 服务端错误:504网关超时


五、响应头 - Response Headers

常见HTTP标头:

Connection: keep-alive - 表示客户端和服务器之间的连接保持活动状态,可重复使用不必每次重新建立连接;
Content-Length: 表示响应体的长度的字节
Content-Type: text/html;charset=utf-8:表示响应体的类型为“text/html”,编码格式为“utf-8”
Content-Encoding:返回的压缩算法,如GZIP
Keep-Alive: timeout=5:表示在没有活动连接时,服务器将在5秒后关闭连接;
server:服务器技术
Set-Cookie:用于服务端操作cookie


http缓存

强制缓存(Cache-Control ):

由服务端进行控制,一般为图片,CSS,JS资源(使用hash)
设置于 Response Headers 中,设置缓存 max-age,不设置 no-cache
Expires 标准已被 Cache-Control 代替;
如果 Cache-Control 没有过期会请求本地缓存,当缓存失效会重新向服务器请求资源;

在这里插入图片描述
协商缓存:


属于服务端缓存策略,用于服务端判断 客户端资源 是否和 服务器资源 一样,然后告诉客户端是否可以使用本地缓存;
初次请求服务端会返回资源和资源标识,再次请求时返回304或者新的资源和新的资源标识。
在 Response Headers中有两种:Last-Modified 资源的最后修改时间、Etag 资源的唯一标识(字符串)
优先使用Etag、Last-Modified只能精确到秒级,也可以共存

在这里插入图片描述
在这里插入图片描述
总结:


在这里插入图片描述

http https


区别:

  • http 明文传输,敏感信息容易被劫持;
  • https = http + 加密(SSL/TLS),劫持了也无法解密;

https 加密方式:

对称加密:一个key,使用key加密的数据互相传输,并使用key进行解密;
客户端使用服务端返回的key进行加密和解密,同样服务端也使用key进行加密和解密,缺陷key会被劫持;

非对称加密:一对key,pubkey 公钥,key 私钥储存于服务端,使用公钥加密则需要使用私钥解密;
服务端返回公钥给客户端,客户端使用公钥对数据进行加密并传输,服务端使用私钥进行解密;

https证书:

为什么需要使用第三方证书,为了防止中间人攻击,中间人可以劫持pubkey进行掉包,再通过自己的key进行解密;
慎用免费和不合规的证书,使用浏览器证书;

  • 服务端需要向第三方机构申请证书
  • 浏览器需要和第三方机构打通,支持证书校验的工作

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值