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的应答状态

相关推荐
筠筠喵呜喵5 小时前
Linux软件开发性能优化
linux·c++·性能优化
Bruce_kaizy5 小时前
c++ linux环境编程——文件io介绍以及open 、write 、read 三剑客深度详解
linux·服务器·c++·ubuntu·操作系统·文件io
亦良Cool5 小时前
VMware虚拟机ubuntu瘦身,解决虚拟机越用越大
linux·运维·ubuntu
星辰&与海7 小时前
KVM + QEMU虚拟化方案
linux·运维
宋浮檀s7 小时前
应急响应——恶意流量&攻击行为识别
linux·运维·网络·网络安全·应急响应
REDcker7 小时前
Linux OverlayFS详解
java·linux·运维
zizle_lin8 小时前
WSL的系统安装和部分环境配置(按需操作)
运维
lwx9148528 小时前
Linux系统中用户锁定后如何解锁
linux·运维·服务器
basketball6168 小时前
HTTP协议返回状态码总结
网络·网络协议·http
zhangrelay9 小时前
ROS 2 Lyrical Luth启程-Ubuntu26.04-
linux·笔记·学习·ubuntu