http请求

本文详细介绍了HTTP协议的工作原理,包括其简单灵活的特点、无状态和明文传输的特性,以及从客户端发起请求到服务器响应的全过程。讲解了HTTP请求的生成、TCP连接的建立、URI和URL的区别以及HTTP报文的结构。同时,阐述了HTTP请求的抓包内容,展示了URI编码机制,并列举了常见协议的默认端口。
  • web页面和后台的交互都使用BS架构:Browser/Server模式
  • web浏览器根据地址栏中制定的URL,从web服务器端获取文件资源等信息,从而显示出web页面。像这种通过发送请求获取浏览器资源的web浏览器等,都可称之为客户端
  • web使用http协议作为规范,完成从客户端到服务器等一系列运作流程

http协议

  • 简单灵活可扩展
  • 可靠传输(其实是tcp的可靠传输)
  • 无状态,明文传输
  • 处于应用层,使用请求-应答的通信模式

http请求的运转流程

  • 客户从客户端发起http请求,即我要浏览某个页面
    应用层
  • 生成HTTP请求报文
  • 通过dns解析域名,获取目标服务器地址
    传输层
  • tcp协议将报文分割成多段,并按序号传递给网络层。某段接收失败会进行重传,从而保证可靠性。(传递数据前会先进行三次握手,建立连接)
    网络层
  • ip协议增加作为通信目的的mac地址后传给链路层,从而在中转过程中搜索对方地址并传送
  • 接收端从链路层接收到数据,并依次经历网络层,传输层,应用层将请求传递给服务器。至此,发送请求完成;

注:发送数据时,每经过一层必定会打上该层的首部信息。接收数据时,每经过一层都会将该层的首部信息去掉

图片来自《图解HTTP》
在这里插入图片描述

一个完整的http请求过程

  1. 浏览器根据域名解析地址
  2. 客户端与服务端建立tcp连接
  3. 客户端(浏览器)发起http请求
  4. 服务器响应请求,并返回html到客户端(浏览器)
  5. 客户端解析html,并请求html中的资源(js,图片等)
  6. 关闭tcp连接,客户端(浏览器)将页面进行渲染,呈现给客户

在这里插入图片描述

  • 发起http请求后的抓包内容,这里没有4次挥手。是因为长连接特性,默认不会立即断开连接
    在这里插入图片描述

解析URI

URI–统一资源标识符,用字符串标识某一互联网资源
URL–统一资源定位符,表示资源的地址
可见,URL是URI的子集。在http中,URL就可以理解为URI

URI格式
在这里插入图片描述

URI的标准格式如上图所示

  • 协议方案名,必填字段。指定了协议
  • 登陆信息,选填
  • 服务器地址,必填。域名或IP地址都可以
  • 服务器端口,选填。省略就使用默认端口号
  • 带层次的文件路径,必填。指定服务器上的文件路径来定位特制的资源
  • 查询字符串,选填。参数
  • 片段标识符,选填。

为了解决特殊字符的问题,URI引入了编码机制。
转义原理:把字符(unicode)编码成utf-8,utf-8是用1-4个字节表示的,所以每个字节转换成16进制并在前面用百分号(%)连接,最后并把每个字节转换的结果连接起来。
常见字符(空格 %20;? %3F)

常见协议的默认端口

协议端口备注
ftp21文件传输协议
ssh,scp22
Pop3110它是因特网电子邮件的第一个离线协议标准
Smtp25简单邮件传输协议
http80超文本传输协议
https443即HTTP下加入SSL层,简单讲是HTTP的安全版
Telnet23远程登录
oracle1521
mysql3306
redis6379
mongo27017
sqlserver1433

http报文

http请求

http状态码

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值