文章目录
应用层
什么是客户端,服务器?
客户端:主动发起请求的一方。
服务器:被动接收请求的一方。
封装:上层协议将数据交给下层协议,打上包装
分用:下层协议将数据部分解析出来,交给上层协议
应用层和应用程序直接相关。这是和程序员打交道最多的地方。
什么叫自定制协议:
1.约定好客户端 请求(Request) 包含什么信息,服务器 响应(Response) 就包含什么信息。
2.约定好数据按照什么格式来组织,本质上互联网传输的都是(二进制)字符串(序列化/反序列化)。
序列化:将对象数组变成字符串。(自己约定格式)
反序列化:将字符串解析回对象。
HTTP/ HTTPS协议(超文本传输协议)
域名和IP地址本质上都是一样的。都是表示你要访问的那个服务器。
域名转换为IP地址的过程称为DNS解析。
当DNS服务器解析失败,这个时候网页就会打不开,此时换一个DNS解析器就OK。
认识URL
平时我们俗称的“网址”其实就是说的URL。
1.HTTP协议格式(行文本格式)
2.HTTP方法
面试题:
- GET和POST的区别?
GET请求通常把数据通过query_String来传输。
POST请求通常把数据通过body来传输。
3.HTTP的状态码
常见的状态码:
2xx:都表示请求成功。eg:200 OK 请求成功
3xx:都表示重定向(呼叫转移 ,链接到别处)。eg: 302Found
4xx:都表示客户端错误(用户打开一个不存在的网址)。eg:404 Not Found
, 403 Forbidden
5xx:都表示服务器错误。 g:502 Bad Gateway
, 504 Gateway Timeout
4.HTTP常见的header
- Content-Type:数据类型(text/html等)
- Content-Length:body的长度
- Host:客户端告知服务器,所请求的资源是在哪个主机的端口上。
- User-Agent:声明用户的操作系统和浏览器的版本信息;
- UA中主要包含两方面的信息:操作系统版本和浏览器版本。
- referer:当前页面是从哪个页面跳转过来的。(广告系统:广告可以投到多个浏览器,打开广告referer可以定位到是从哪个浏览器链接过来)
- location:搭配3xx状态码使用,告诉客户端接下来要去哪里访问;
- Cookie:(存了一个字符串)用于在客户端存储少量信息,通常用户实现会话(session)的功能。里面的具体内容都是由对应产品的程序员自行决定的。但是里面包含了用户身份标识(session ID);
5.Cookie和Session之间的理解
Cookie只是浏览器存储数据的一种方式(客户端的概念)
Session是服务器进行描述用户身份信息的一种方式(服务器端的概念)
实现Session机制的过程中(程序员手动实现的),通常要把session id 放到cookie 中保存。