热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HTTP协议知识点(二)

一台HTTP服务器可以搭建多个Web站点,相同的IP地址下,虚拟主机可以寄存多个不同主机名和域名的Web网站,因此在发送HTTP请求时&#




一台HTTP服务器可以搭建多个Web站点,相同的IP地址下,虚拟主机可以寄存多个不同主机名和域名的Web网站,因此在发送HTTP请求时,必须在Host首部内完整指定主机名或域名的URI

代理:一种有转发功能的应用程序,扮演了位于服务器和客户端中间人的角色,接受由客户端发送的请求并转发给服务器,同时也接收服务器返回的响应并转发给客户端。

网关:转发其他服务器通信数据的服务器,接受从客户端发送过来的请求时,它会想自己拥有资源的源服务器一样对请求进行处理。也可以由HTTP请求转化为其他通信协议,此外网关也能提高通信的完全性,可以在客户端和网关之间的通信线路上加密以确保连接的安全
在这里插入图片描述

隧道:是在相隔甚远的客户端和服务器之间进行中转,并保持双方通信连接的应用程序。使用SSL等加密手段进行通信。确保客户端能与服务器进行安全的通信
在这里插入图片描述

代理服务器:
在这里插入图片描述

代理服务器优势:利用缓存技术减少网络带宽的流量,组织内部针对特定网站的访问控制,以获取访问日志为主要目的

缓存:代理服务器或客户端本地磁盘内保持的资源副本,缓存服务器是代理服务器的一种。利用缓存可以避免多次从源服务器转发资源,因此客户端可以就近从缓存服务器上获取资源,而源服务器也不必多次处理相同的请求了。缓存存在一个有效期


HTTP报文首部

在这里插入图片描述

HTTP响应报文由HTTP版本,状态码,HTTP首部字段3部分:
首部字段是为了给浏览器和服务器提供报文主体大小,所使用的语言,认证信息等内容。

1.通用首部字段(General Header Fields):请求报文和响应报文两方都会使用的首部
2.请求首段字段(Request Header Fields):从客户端向服务端发送请求报文时使用的首部,补充了请求的附加内容,客户端信息,响应内容相关优先级等信息
3.响应首部字段(Response Header Fields):从服务器端向客户端返回响应报文时使用的首部,补充了响应的附加内容,也会要求客户端附加额外的内容信息
4.实体首部字段(Entity Header Fields):针对请求报文和响应报文的实体部分使用的首部,补充了资源内容更新时间等与实体有关的信息

首段字段结构:首部字段名和字段值构成的,中间使用冒号:分割

通用首部字段
在这里插入图片描述

请求首部字段
在这里插入图片描述

响应首部字段
在这里插入图片描述

实体首部字段
在这里插入图片描述

HTTP首部字段将定义成缓存代理和非缓存代理的行为

端到端首部(End-to-End Header):分在次类别中的首部会转发给请求/响应对应的最终接受目标,且必须保存在由缓存生成的响应中,另外规定它必须被转发
逐跳首部(Hop-by-hop Header):分在此类别中的首部只对单次转发有效,会因通过缓存或代理而不再转发,如果使用hop-by-hop首部,需要提供Connection首部字端
Connection
Keep-Alive
Proxy-Authenticate
Proxy-Authorization
Trailer
TE
Transfer-Encoding
Upgrade这八个都是逐跳首部(其他字段都是端到端字段)

cache-Control:控制缓存行为。

格式:Cache-Control:private(public 表示是否可以缓存), max-age=0, no-cache

缓存请求指令
在这里插入图片描述

缓存响应指令
在这里插入图片描述

Cache-Control中部分操作

Cache-Control:min-fresh=60(单位:秒):指令要求缓存服务器返回至少还未过指定时间的缓存资源
Cache-Control:max-stale=3600(秒):权限高于min-fresh,只要没过max-stale时间就可以被客户端接受响应,不指定时间就是永久
only-if-cached:表示客户端仅在缓存服务器本地缓存目标资源的情况下才会要求其返回,也就是要求缓存服务器不重新加载响应,也不会再次确认资源的有效性
must-revalidate:代理会向源服务器再次验证即将返回的响应缓存目前是否仍然有效,权限甚至比max-stale更高,直接忽视它
proxy-revalidate:要求所有的缓存服务器在接收到客户端带有该指令的请求返回响应之前,必须再次验证缓存的有效性
no-transform:无论是在请求还是在响应中,缓存都不能改变实体主体的媒体类型,防止缓存或代理压缩图片的操作

HTTP1.1警告码
在这里插入图片描述


请求首部字段

用于补充请求的附加信息,客户端信息,对响应内容相关的优先级等内容


Accept

可通知服务器,用户代理能够处理的媒体类型和媒体类型的相对优先级,优先级使用q=来额外表示权重值

Accept-Charset:用来通知服务器用户代理支持的字符集及字符集的相对优先顺序,用于内容协商机制的服务器驱动协商
格式:Accept-Charset: iso-8859-5, unicode-1-1;q=0.8
Accept-Encoding:用来告知服务器用户代理支持的内容编码及内容编码的优先级顺序
格式:Accept-Encoding: gzip, deflate
Accept-Language:告诉服务器用户代理能够处理的自然语言集
格式Accept-Language: zh-cn,zh;q=0.7,en-us,en;q=0.3
Authorization: 告知服务器用户代理的认证信息
格式:Authorization: Basic dWVub3NlbjpwYXNzd29yZA==
Host:告知服务器请求的资源所处的互联网主机名和端口号,必须被包含在请求内的首部字段

Proxy-Authorization:客户端和代理服务器之间的相互认证

Referer:告知服务器请求的原始资源的URI

User-Agent:用于传达浏览器的种类和用户代理名称等信息给服务器

格式:User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gec


响应首部字段

由服务器端向客户端返回响应报文中所使用的字段,用于补充响应的附加信息,服务器信息以及对客户端的附加要求等信息

Accept-Ranges: 用来告知客户端服务器是否能够处理范围请求以指定获取服务器端某个部分的资源

Age:告知客户端源服务器在多久之前创建了响应,字段值的单位为秒

ETag:客户端的实体标识,ETag有强弱之分,强ETag不论实体发生多么细微的变化都会该改变其值,而弱ETag只用于提示资源是否相同,只有资源发生了根本变化,产生差异才会改变ETag值

Location: http://www.usagidesign.jp/sample.html 使用首部字段可以将响应接收方引导至某个与请求URI位置不同的资源,几乎所有的浏览器在接收到包含首部字段Location的响应后,都会强制性地尝试对已提示的重定向资源访问。

Server:首部字段Server告诉客户端当前服务器上安装的HTTP服务器应用程序的信息,不单单会标出服务器上的软件应用名称,还有可能包括版本号和安装时启动的可选项

Vary:可对缓存进行控制
在这里插入图片描述

如果语言不同,则只能从源服务器端获取资源后才能作为响应返回


实体首部字段

实体首部字段是包含在请求报文和响应报文中的实体部分所使用的的首部,用户补充内容的更新时间等与实体相关的信息

Allow:用户通知客户端能够支持Request-URI指定资源的所有HTTP方法。
Content-Encoding:告知客户端服务器对实体的主体部分选用的内容编码方式,内容编码是指在不丢失实体信息的前提下所进行的压缩
Content-Location 表示的是报文主体返回资源对应的 URI
Content-Range:告知客户端作为响应返回的实体的那个部分符合范围请求
Expires:将资源失效的日期告知客户端
Last-Modified 指明资源最终修改的时间

为COOKIE服务的首部字段
在这里插入图片描述

Set-COOKIE字段属性和含义
在这里插入图片描述


其他首部字段

X-Frame-Options:用于控制网站内容再其他Web网站的Frame标签内的显示问题,主要目的是为了防止点击劫持攻击

X-XSS-Protection:针对XSS的一种策略,用于控制浏览器XSS防护机制的开关

DNT:Do Not Track的简称,意为拒绝个人信息被收集,是表示拒绝被精准广告追踪的一种方法

P3P:可以让Web网站上的个人隐私变成一种仅供程序可理解的形式,以达到保护用户隐私的目的







推荐阅读
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 应用链时代,详解 Avalanche 与 Cosmos 的差异 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • DVWA学习笔记系列:深入理解CSRF攻击机制
    DVWA学习笔记系列:深入理解CSRF攻击机制 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • MySQL初级篇——字符串、日期时间、流程控制函数的相关应用
    文章目录:1.字符串函数2.日期时间函数2.1获取日期时间2.2日期与时间戳的转换2.3获取年月日、时分秒、星期数、天数等函数2.4时间和秒钟的转换2. ... [详细]
  • 本文深入解析了 Kubernetes 控制平面(特别是 API 服务器)与集群节点之间的通信机制,并对其通信路径进行了详细分类。旨在帮助用户更好地理解和定制其安装配置,从而增强网络安全性,确保集群的稳定运行。 ... [详细]
  • 该大学网站采用PHP和MySQL技术,在校内可免费访问某些外部收费资料数据库。为了方便学生校外访问,建议通过学校账号登录实现免费访问。具体方案可包括利用学校服务器作为代理,结合身份验证机制,确保合法用户在校外也能享受免费资源。 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • 在优化Nginx与PHP的高效配置过程中,许多教程提供的配置方法存在诸多问题或不良实践。本文将深入探讨这些常见错误,并详细介绍如何正确配置Nginx和PHP,以实现更高的性能和稳定性。我们将从Nginx配置文件的基本指令入手,逐步解析每个关键参数的最优设置,帮助读者理解其背后的原理和实际应用效果。 ... [详细]
author-avatar
笨笨的小白鼠
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有