HTTP,应用层协议http
应用层 - 传输层 - 网络层 - 网络接口层
http tcp, udp
http超文本传输协议,是基于TCP的一种应用协议,用于规定超文本在网络中传输的流程
(注意!不能基于UDP!)
TFTP使用UDP协议,
c/s模型: Client Server客户端服务器模型
优点:
资源在本地,加载速度快
无需连接服务器,本地也能工作
缺点:
占本地空间
不同的平台,客户端需要单独编写一份代码,开发效率低
资源增加时,需要本地升级版本,或打补丁
B/S模型,浏览器服务器模型
特点:
资源在服务器上
新增资源时无需更新本地的内容
每次查看资源都是从服务器上下载最新的资源到本地进行查看
任何平台都有浏览器,代码可以通用,避免重复开发客户端
HTTP协议
统一资源定位符:URL,网址 <协议> : / / <主机> : <端口> / <路径>
https://chat.deepseek.com/a/chat/s/0a1d4c5e-e227-4a36-9dbb-82e8e51097a8
协议 主机域名 端口默认为443 路径
协议:通过协议从服务器获取资源,http或https
主机:服务器的IP地址,通常以域名的形式展示,通过DNS服务器,将域名转换为其对应的IP地址
端口:服务器上的应用程序端口号,HTTP常见端口为80或8080,HTTPS端口为443
路径:资源在服务器中存放的位置
HTTP传输的过程
1.在浏览器中输入URL
2.浏览器向URL中的IP地址和端口发起TCP连接 (每次刷新请求都需要重新建立TCP连接)
3.发送HTTP请求报文,告诉服务器要干什么
4.回复HTTP响应报文
5.断开TCP连接
如何获得网站的报文:
打开wireshark抓包, sudo wireshark, 先打开
通过curl(需要安装)
curl -v "http://sapi.k780.com/?app=weather.realtime&weaId=1&ag=today,futureDay,lifeIndex,futureHour&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json"
暂停wireshaark, 过滤ip.addr == 192.168.0.166(请求报文是本地发给服务器的)
找到HTTP类型的,GET开头的,内容为报文以及格式
查找网站的IP,直接ping 网站
HTTP请求报文的格式:(ASCII码组成的字符串,长度不确定)
HTTP响应报文的格式:
状态行:
版本号:HTTP/1.1
状态码:响应该次请求的结果
