刚入职菜鸟复习HTTP协议

HTTP协议

在浏览器输入栏输入URL网址后的流程

  1. DNS解析(UDP/DNS两种协议)
  2. 获取IP地址建立TCP连接(TCP协议)
  3. 发送HTTP报文(GET/POST/DELETE/UPDATE)(HTTP协议)
  4. 等待HTTP响应(200/404)
  5. 解析,渲染

HTTP和TCP

  • HTTP依赖TCP
  • HTTP使用的TCP作为自己的传输层
  • 默认情况下HTTP使用TCP的80端口,HTTPS使用443端口

HTTP特性

特性1:文本协议

  • 文本协议一般是由一串ACSII字符串组成的数据,这些字符包括数字,大小写字母,百分号,还有回车(\r),换行(\n)以及空格等等。
  • 优点:方便阅读理解
  • 缺点:传输效率和解码效率低。

特性2:无状态

  • 协议对事物没有记忆能力
  • 对一次请求URL没有上下文关系
  • 每次请求都是独立的:本次请求跟上次请求没有关系
  • 服务器不保存客户端状态

特性3:无连接

  • 发送前不需要建立连接
  • 形如UDP

常用的请求方法

  • GET:用于请求访问已经被URL(统一资源标识符)识别的资源,可以通过URL传参给服务器。
  • POST:用于传输信息给服务器,主要功能与GET方法相似,但一般推荐使用POST方式。
  • PUT:传输文件,报文主体中包含文件内容,保存到对应的URL位置。
  • HEAD:获取报文首部,与GET方法类似,只是不返回报文主体,一般用于URL是否有效。
  • DELETE:删除文件,与PUT方法相反,删除对应URL位置的文件。
  • OPTIONS:查询相应的URL支持的HTTP方法。

GET与POST的区别

  1. get没有body体,当需要传递参数时参数会被拼接到URL中。
  2. get请求URL传参有长度限制,post请求没有长度限制。
  3. get请求参数只能是ASCLL码,所以中文需要URL编码,而POST请求传参没有这个限制,可以任意编码。

请求报文常用头部

头(header)说明
User-Agent客户端的信息(浏览器名称等,比如区分手机和电脑)
Accept客户能处理的页面类型,如text/html
Accept-Charset客户能处理的页面字符集,如gb2312
Accept-Encoding能处理的编码方法,如gzip
Accept-Language客户能处理的自然语言,如en,zh-cn
Host服务器的DNS名称
Authorization认证
Cookie保存状态
Date时间
RANGE断点续传(迅雷等多线程分片下载的核心)
Connection标识连接为长连接或则短连接

响应报文常用头部

头(header)说明
Server服务器信息
Content-Encoding页面类型,如text/html
Content-Type页面字符集,如gb2312
Content-Encoding编码方法,如gzip
Content-Language自然语言类型,如en,zh-cn
Last-Modified缓存时用到
Location重定向地址(302)
Set-Cookie和cookie配合使用

WSSE(WS-Security)认证

认证流程:

  1. 客户端访问一个受WSSE认证保护的资源。
  2. 服务端返回401状态,要求客户端进行认证。
  3. 客户端将生成一个nonce值,并以该nonce值,密码,当前日时为基础,算出哈希值返回服务器。

HTTPS原理

HTTPS = HTTP+ssl/tls在http和socket之间构建一层安全socket层。

非对称加密

前提:公钥加密的报文可以利用私钥用于解密。

接收方:生成一对秘匙(公钥+私钥),并把公钥分发给发送方。

发送方:发送方利用公钥把信息加密,发送给接收方。

接收方:接收到加密信息,利用私钥解密。

CA证书

  1. 服务器把证书给客户端。
  2. 客户端利用第三方机构证书,校验服务器证书合法性,提取服务器公钥
  3. 客户端产生对称秘钥(利用服务器公钥加密后给服务器)
  4. 服务器利用对称秘钥加密传输数据

HTTPS网站需要向第三方申请证书

客户端需要安装第三方证书(证书中包含公钥)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值