Linux HTTP协议

news2024/12/23 12:54:24

目录

  • 1.浏览器与服务器通信过程
  • 2.HTTP请求报头
    • (1)HTTP的请求报头结构
    • (2)HTTP的请求方法
  • 3.HTTP应答报头
    • (1)HTTP的应答报头结构
    • (2) 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的应答状态

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1006360.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小程序源码:多功能口袋工具箱微信小程序源码-带流量主|云开发(更新)

这里主要分享多功能口袋工具箱微信小程序源码,有带流量主,而且超多功能工具箱组合的微信小程序源码。无需服务器即可搭建,可以设置流量主赚取收益。 源码链接: 网盘源码 密码:hma8 工具箱的应用一览: 1…

部署kibana可视化平台

部署kibana可视化平台 案例版本:kibana 8.6.2 1、下载 去官网中查找与安装的ES版本一致的安装包:官网kibana下载。 可以选择自行下载好后放入服务器中进行安装,也可以使用wget下载: # 下载 cd /home/elasticsearch/kibana wge…

LeetCode 1132.申请的报告2

数据准备 Create table If Not Exists Actions (user_id int, post_id int, action_date date, action ENUM(view, like, reaction, comment, report, share), extra varchar(10)); create table if not exists Removals (post_id int, remove_date date); Truncate table Act…

【ccf-csp题解】第2次csp认证-第四题-最优配餐-多源BFS

题目描述 思路讲解 这道题的数据量是10^6,直接用floyd算法,肯定是不行的 此处介绍新的思路:多源BFS 我们的核心目的是,对于每一个终点(即此处的顾客)能够找到离它最近的源点(即此处的餐馆&am…

GFS分布式存储

一,gfs简介 GlusterFS 是一个开源的分布式文件系统,由存储服务器、客户端以及NFS/Samba 存储网关(可选,根据需要选择使用)组成。没有元数据服务器组件,这有助于提升整个系统的性能、可靠性和稳定性。 传统的…

第七章 系统管理和维护

第七章 系统管理和维护 ​ 当我们要登录系统或访问系统的某个资源时,通常都要求输入用户名和密码,从系统的角度看,用户就是一种进行认证或授权的标识。只有通过认证的用户才能访问相应的资源,而对于同一个资源,不同的…

再获新突破!移远通信RedCap模组拿下首张端网协同测评证书

为进一步推动5G技术的商用和普及,今年8月初,移远通信与广东联通联合建立了5G端网能力研究联合实验室(以下简称“联合实验室”),双方将在5G及RedCap各项性能的研究方面展开深入合作。广东联通网络产品创新中心总经理潘桂…

恒运资本:股市几点开盘和收盘?

股票商场在股票生意日打开,每个国家的股票商场都有自己的开盘和收盘时间。在本文中,我们将分析股市开盘和收盘时间的重要性,以及股市如安在纷歧起区的运作。我们还将讨论股市开盘和收盘时间的改动,以及这些改动对股票商场的影响。…

JVM核心参数图解-整理

一、VM核心参数 在JVM里有几个比较核心的参数,今天就主要来讲这几个: -Xms:JVM初始堆内存大小-Xmx:JVM堆内存的最大值-Xmn:JVM中新生代大小-XX:PermSize:永久代大小-XX:MaxPermSize:永久代最大…

拓世科技集团到访考察吉安青原区:共谋AIGC数字经济产业园发展大计

千帆竞发立潮头,奋勇争先谋发展,在中国这片广袤的大地上,先行者的每一次拓进都是历史的华章,远谋者的每一次交汇都是未来的预言。当红色江西大地与现代科技脉搏共振,当青原区的绿意拥抱拓世科技的AIGC科技,…

Mysql高级——索引

索引 索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足 特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构 上…

视频接口冷知识

常用视频接口的分辨率和带宽 VGA接口:VGA接口是一种传输模拟信号的视频接口,它只能支持视频传输,不支持音频传输。VGA接口的最大支持分辨率是2048x1536px。HDMI接口:HDMI接口是一种传输数字信号的视频接口,它可以同时…

【基于Cocos Creator 3.5的赛车游戏】8.引入触摸屏幕事件并简单的控制小车

转载知识星球 | 深度连接铁杆粉丝,运营高品质社群,知识变现的工具 项目地址:赛车小游戏-基于Cocos Creator 3.5版本实现: 课程的源码,基于Cocos Creator 3.5版本实现 上一张您已经对Cocos的坐标系有了了解。这一章我们将让小车能…

MFC-GetAdaptersAddresses获取网卡信息

需要:#pragma comment(lib, "IPHLPAPI.lib") GetAdaptersAddresses函数参数说明 ULONG bufferSize = 0;ULONG result = ::GetAdaptersAddresses(AF_UNSPEC, GAA_FLAG_INCLUDE_PREFIX, nullptr, nullptr, &bufferSize);/*参数1:ULONG Family 网络协议族,此参…

【linux】Linux wps字体缺失、加粗乱码解决

解决wps字体缺失问题 1、下载字体包 git clone https://github.com/iamdh4/ttf-wps-fonts.git2、创建单独放置字体的目录 mkdir /usr/share/fonts/wps-fonts3、复制字体到系统目录下 cp ttf-wps-fonts/* /usr/share/fonts/wps-fonts4、修改字体权限 chmod 644 /usr/share/f…

2023年Java毕业设计选题推荐,1000道创新创意Java毕业设计题目推荐,避免踩坑

大家好,我是程序员徐师兄,最近有很多同学咨询,说毕业设计了,不知道选怎么题目好,有哪些是想需要注意的。 确实毕设选题实际上对很多同学来说一个大坑, 每年挖坑给自己跳的人太多太多。选到合适的题目的话&…

python pycharm 下载 安装 (1)

pycharm 官网 JetBrains: 软件开发者和团队的必备工具 python 官网 Python Release Python 3.11.5 | Python.org 软件安装 pycharm python 终端安装 然后进行全局配置 打开pycahrm 可以在扩展里边搜索中文翻译 测试

基于分布式系统结构下Nacos配置中心的应用

前言 在上一篇nacos初始中,已经描述过Nacos的基本知识,在这篇博客里记录的是Nacos配置中心的使用。 Nacos配置中心的作用 集中化配置管理:Nacos配置中心支持将应用程序的配置信息集中管理,包括常规的属性配置、文本配置、JSON配…

界面控件DevExtreme DateRangeBox组件发布,支持日期范围选择!

在最新的v23.1版本中,DevExpress官方已经正式发布了DevExtreme DateRangeBox小部件,支持所有JavaScript框架,包括Angular、React、Vue和jQuery。这个新的控件允许最终用户选择一个日期范围,该组件继承了DateBox组件的特性&#xf…

【笔记】简单算法查找、排序的思路和优化

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目…