应用层:Http、Https

1、理解URL

定位资源​​: 它是互联网资源的唯一标识,确保你能准确访问想去的页面。

​结构化信息​​: 它的每个部分都承载着特定信息,让浏览器和服务器能高效沟通。

​用户体验​ ​: 清晰、有意义的 URL(如 /products/iphone-15)比混乱的 URL

(如 /p?id=1234)对用户和搜索引擎都更友好。

2.Http请求和响应报头格式

虽然我们说, 应用层协议是我们程序猿自己定的.
但实际上, 已经有大佬们定义了一些现成的, 又非常好用的应用层协议, 供我们直接参考使用. HTTP(超文本传输协议) 就是其中之一.

3.编写简单的HttpServer(hello world版本)

构建响应

4.根据请求url,返回web根目录下对于的配置文件(源码+结果)

解析http请求

源代码:

结果:

5.理解http中的字段

5.1常用的请求方式 get 和 post

get:

post:

5.2http状态码

5.2.1状态码404

5.2.2状态码301(永久重定向)、302(临时重定向)

5.3常见的Header

Content-Type: 数据类型(text/html等)

**Content-Length:**Body的长度

Host: 客户端告知服务器, 所请求的资源是在哪个主机的哪个端口上;

User-Agent: 声明用户的操作系统和浏览器版本信息;

referer: 当前页面是从哪个页面跳转过来的;

location: 搭配3xx状态码使用, 告诉客户端接下来要去哪里访问;

Cookie: 用于在客户端存储少量信息. 通常用于实现会话(session)的功能

**referer:**上一个页面跳转过来的网址

connection:keep-alive:支持长连接

补充:一个巨大的页面是会包含非常多的元素的!每一个元素就是一个资源。

例如:一个页面上有100个元素,那么就要发起101次http请求。

5.3.1Connection:keep-alive 支持长连接

5.3.2文件数据类型

示例:一个页面存在多个资源,发送多个http请求

5.3.3cookie:用于记录客户端存储的消息

见一见:

原理:

cookie泄露问题

相关推荐
blasit5 小时前
笔记:Qt C++建立子线程做一个socket TCP常连接通信
c++·qt·tcp/ip
YuMiao11 小时前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
肆忆_1 天前
# 用 5 个问题学懂 C++ 虚函数(入门级)
c++
chlk1231 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑1 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件1 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
不想写代码的星星1 天前
虚函数表:C++ 多态背后的那个男人
c++
深紫色的三北六号2 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash2 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI2 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github