三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

应用层协议http

应用层协议http

http是超文本传输协议

定义了客户端与服务器的通信

客户端通过http协议向服务器发送请求

在网络中请求的资源本质就是文件

公网ip地址本质就是Linux下的路径结构

网络通信,不是我把数据给别人,就是别人把数据给我

本质上就是IO,我们上网的所有行为,都是在做IO

图片,视频,音频等,都是资源

获取资源前,要先确认我要的资源在哪一个服务器上(网络,ip),在什么路径下(系统,路径)

URL/ 不一定是根目录,其实是叫做web根目录,这两者不一定相等

URL没有体现端口号,因为不需要端口号

成熟的应用层协议,往往和端口号是强关联的

像/?这样的字符,在url中已经被当作特殊意义理解了,这些字符不能随意出现

如果某个参数需要带这些特殊字符,就必须对特殊字符转义

规则:字符转为16进制,从右到左,取四位,不足四位就直接处理,没两位做一位,前面加%

写成%xy格式

http协议的宏观格式

对于http任何请求都要有应答

http在进行信息交换时,也会交换版本信息,因为可能存在两者的版本不同的问题

这是对客户端版本进行良好保护的方式

http的属性:

一张网页不是简单的html文件,而可能是html文件和各种图片的集合

浏览器收到的内容可能包括:html,图片,视频,可执行程序等

客户端向自己的http服务器发起请求,http服务器会给出反应

但是你要发起的请求并不在我的服务器上

此时自己收到请求上,不对请求做任何处理

而是会将自己作为另一个http服务器的客户端

将请求转给另一个http服务器的客户端

然后再将从另一个http服务器的客户端收到的数据相应会发出请求的客户端

此时我们的客户端就成了代理服务器

我们的服务器可以维护一张服务器清单,存储http服务器集群的端口

随后就可以访问各种服务器

代理服务器是一种使用策略,动态选择后端的服务器

http的状态码

重定向:

我在首次请求时,我的服务器会返回一个http的应答

发现302found和location

此时浏览器会自动发起二次请求,自动访问目标服务器

http301表明请求的资源已经永久移动到其他位置

http302表明请求的资源被临时移动到其他的位置

永久重定向对搜索引擎影响最大

如果网站更换了域名,搜索引擎在更新网站链接时需要永久重定向为新域名,才能够跳转到网站

get通常用于获取网页,get传参通过url

post通常用于上传数据,post传参通过body

get通常用于传不太私密的数据,因为get的数据会被看到

post用于传输私密数据,如密码等

post传参比get传参更私密,但是不能说post比get更安全

因为不管是get还是post,都会被抓包

安全问题一定要对请求和相应进行加密

cookie

二次请求httpservice时,浏览器会自动携带曾经写入的消息,就是cookie

每访问一个页面,都要进行一次身份认证

session

服务器存储session_id,登录认证session对象,登录时,客户端浏览器需要对session_id进行认证

我们避免不了cookie信息被盗取,但是使用服务器存储session信息,就不会造成用户信息的泄漏了,客户端就可以设计各种策略,来防止黑客进行恶意操作

session + cookie就是会话保持的常见做法

← 返回列表