应用层: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泄露问题