Linux HTTP协议

目录

1.浏览器与服务器通信过程

浏览器与web服务器在应用层 通信使用的是HTTP协议(超文本传输协议),而HTTP协议在传输层使用的是TCP协议。那么浏览器需要和web服务器三次握手建立连接后,浏览器才可以向web服务器发送HTTP请求报文,服务器收到请求报文后,向浏览器回复HTTP应答报文。

浏览器向服务器发起连接前,需要得到服务器的IP及端口。用户在浏览器中通常只输入网址(网站域名),浏览器会通过DNS服务查询获取到服务器的IP地址。 对于端口来讲,使用HTTP协议的程序一般默认使用80端口。如下图所示:

2.HTTP请求报头

(1)HTTP的请求报头结构

连接方式有长连接和短链接:

浏览器服务器建立连接后,如果两次以上的请求复用同一个TCP连接,则称之为长连接 。如果浏览器发送一次请求报文,服务器回复一次应答就断开连接,下次交互再重新进行三次握手建立连接,那么就被称作短连接。使用长连接显然是更好一些,可以减少网络中的同步报文,也使得服务器的响应速度变快。

Keep-Alive是长连接,close是短链接。

(2)HTTP的请求方法

这些方法中,HEAD、GET、OPTIONS和TRACE被视为安全的方法,因为它们只是从服务器获取资源或信息,而不对服务器进行其他任何修改。而POST、PUT、DELETE和PATCH则影响服务器上的资源。

另一方面,HEAD、GET、OPTIONS、TRACE、PUT和DELETE是等幂的,,即多次连续的、重复的请求和只发送一次该请求具有完全相同的效果。而POST方法则不同,连续多次发送同样一个请求可能进一步影响服务器的资源。

HEAD、GET和POST也是Linux中提供的几种命令,其含义基本与HTTP协议中同名的请求方法相同,它们适合用来快速测试web服务器。

主要记住以下两个请求方法:

GET:表示客户端以只读的方式来申请资源,不对服务器产生任何其他影响。

POST:客户端向服务器提交数据的方法。这种方法会影响服务器:服务器可能根据收到的数据动态创建新的资源,也可能更新原有的资源 。

3.HTTP应答报头

(1)HTTP的应答报头结构

关于Cookie:

HTTP协议是一种无状态的协议,即每个HTTP请求之间没有任何上下文关系。如果服务器处理后续HTTP请求时需要用到前面的HTTP请求的相关信息,客户端必须重传这些信息。这样就导致HTTP请求必须传输更多的数据。

在交互式web应用程序兴起后,HTTP协议的这种无状态特性就显得不适应了,因为交互程序通常要承上启下。因此,我们要使用额外的手段来保持HTTP连接状态,常见的解决方法就是Cookie。Cookie是服务器发送给客户端的特殊信息 (通过HTTP应答的头部字段"Set-Cookie"),客户端每次向服务器发送请求的时候都需要带上这些信息(通过HTTP请求的头部字段"Set-Cookie")。这样服务器就可以区分不同的客户了。基于浏览器的自动登录就是用Cookie实现的。

(2) HTTP的应答状态

相关推荐
yaosheng_VALVE21 分钟前
稀硫酸介质中 V 型球阀的材质选择与选型要点-耀圣
运维·spring cloud·自动化·intellij-idea·材质·1024程序员节
看山还是山,看水还是。1 小时前
Redis 配置
运维·数据库·redis·安全·缓存·测试覆盖率
扣得君1 小时前
C++20 Coroutine Echo Server
运维·服务器·c++20
keep__go1 小时前
Linux 批量配置互信
linux·运维·服务器·数据库·shell
矛取矛求1 小时前
Linux中给普通账户一次性提权
linux·运维·服务器
Fanstay9851 小时前
在Linux中使用Nginx和Docker进行项目部署
linux·nginx·docker
大熊程序猿1 小时前
ubuntu 安装kafka-eagle
linux·ubuntu·kafka
death bell3 小时前
Docker基础概念
运维·docker·容器
ʚɞ4963 小时前
应用程序部署(IIS的相关使用,sql server的相关使用)
运维·服务器
earthzhang20213 小时前
《深入浅出HTTPS》读书笔记(7):安全的密码学Hash算法
网络·网络协议·http·https·1024程序员节