首页 > 系统相关 >Linux基础30 HTTP协议, 请求信息, 请求方法, 状态码, 请求头信息

Linux基础30 HTTP协议, 请求信息, 请求方法, 状态码, 请求头信息

时间:2023-07-25 11:47:20浏览次数:40  
标签:HTTP 缓存 浏览器 请求 30 服务器 页面

HTTP协议

HTTP协议概述

1.什么是HTTP

HTTP 全称: Hyper Text Transfer Protocol
中文名: 超文本传输协议

HTTP协议简单的说,将用户请求的页面从服务器传输到客户端浏览器,浏览器进行解析,解析以后变成一个我们人类可以理解的方便观看的页面

2.什么是超文本

包含有超链接(Link)和各种多媒体元素标记(Markup)的文本。
超文本(Hypertext)就是指具有超链接功能的文件,它可以将文件中已经定义好的关键字(Keyword),经过鼠标的点击(Click),便可以得到关键字的相关解释,这种方法使用户使用起来更感舒适

3.什么是URL

统一资源定位符
当我们访问: baidu.com
其实他访问的是: http://www.baidu.com:80/index.html

URL:    http://        www.baidu.com  :80        /index.html
        #协议          #域名           #端口       #文件及其路径
协议: 协议还有很多,ftp、file、ssh、ws
域名: 代表我们访问的主机,域名好记
端口: 进入我们服务器的门
文件路径: 服务器上的资源,实际路径由web服务决定

html文件->包含各种各样的元素(URL连接)->形成WebPage建成web页面
URL HTML HTTP 之间的关系
一个完整的HTML页面是有多个URL地址资源组成的,而HTTP协议是来传输和解析HTML页面的

 

HTTP工作原理

1.首先,当你在浏览器中输入一个网址时(https://www.baidu.com/s?ie=...),浏览器会帮你分析,你输入的这个URL
2.其次,浏览器会向DNS服务器请求解析,该URL中的域名www.baidu.com,解析出百度服务器所在的地址
3.DNS服务器,会将解析出来的IP地址110.111.112.113并返回给浏览器
4.浏览器接收到DNS返回的IP地址,立即与该IP所在的服务器简历TCP链接(80端口)
5.浏览器请求文档,也就是html页面,GET /index.html,并发出HTTP请求报文
6.服务器给出响应,将请求的index.html文档返回给浏览器,也就是响应HTTP请求的报文
7.TCP链接响应完之后,释放TCP链接
8.最后能显示出,你请求的这个页面

 

浏览器获取数据后,页面的请求信息

1.基本信息(General)

请求网址:    https://www.cnblogs.com/
请求方法:    GET
状态代码:    200
远程地址:    114.55.187.58:443        # 远程主机ip和端口
引荐来源网址政策:    strict-origin-when-cross-origin        # 控制请求头信息

2.请求头部(Request Header)

# 请求的域名
Authority: www.cnblogs.com
# 请求的方式
Method: GET
# 请求的地址和文件
Path: /
# 请求的协议
Scheme: https
# 请求的资源类型(下方的请求类型都进行展示)
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
# 压缩
Accept-Encoding: gzip, deflate, br
# 字符类型
Accept-Language: zh-CN,zh;q=0.9
# 缓存的时间(最大保持多久)
cache-control: max-age=0
# 登录信息
Cookie: ...
# 升级
Upgrade-Insecure-Requests: 1
# 客户端信息
User-Agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36

3.响应头部(Responcse Header)

# 阿里云的存储时间
ali-swift-global-savetime: 1582084570
# 缓存控制
Cache-Control: public,max-age=30
# 压缩
Content-Encoding: gzip
# 文件类型和字符集
Content-Type: text/html; charset=utf-8
# 返回数据时间
Date: Mon, 24 Jul 2023 07:52:29 GMT
# 加密的id
eagleid: 777....
# 失效时间(缓存)
expires: Thu, 19 Nove 1981 08:52:00 GMT
# 软链接
link: <https://www.driverzend.com/wp-json/>; rel="https://api.w.org/"
# 没有缓存
progma: no-cache
# 使用web服务
server: Tengine
# 状态码
status: 200
# 限制参数,跨域使用
timing-allow-origin: *
# 渲染
vary: Accept-Encoding
# 缓存
via: cache7.12cm9..., cache41.12cm9..., kunlun10.cn2040... # 这有3层缓存(cdn服务器上的,不用知道)
---------CDN服务器参数------------    # 不需要了解
x-cache : MISS TCP...
x-pingback: https:...
x-powered-by: PHP/7.1.21
x-swift-cachetime: 0
x-swift-savetime: Wed, 19 Feb...

 

HTTP的请求方法

在HTTP请求报文中的方法(Method),是对所请求对象所进行的潮州,也就是一些命令。请求报文中的操作有:

 

方法(Method)含义
GET 请求读取一个Web页面
POST 附加一个命名资源(如Web页面)
DELETE 删除Web页面
CONNECT 用于代理服务器
HEAD 请求读取一个Web页面的头部
PUT 请求存储一个Web页面
TRACE 用于测试,要求服务器送回收到的请求
OPTION 查询特定选项

 

HTTP响应方法

状态码(status-code)是响应报文状态行中包含的一个三位数字,指明特定的请求是否被满足

状态码含义
200 成功
301 永久重定向(跳转)第一次访问,跳转新地址。之后访问直接去新地址
302 临时重定向(跳转)第一次访问,跳转新地址。之后访问还是先访问原地址再跳新地址
304 本地缓存 (读本地缓存,如果不要读,ctrl+F5强制刷新或者无痕浏览, 或设浏览器F12禁缓存Disable cache,文件size如果是memory cache也是缓存)
307 临时跳转,有钱人这么搞,比如www.jd.com
400 客户端错误,请求错误
401 认证失败
403 找不到主页,权限不足
404 找不到页面
500 内部错误
502 找不到后端主机
503 服务器过载 (服务器上跑的程序太多)
504 后端主机超时

 

请求头部参数

头(header)类型说明
User-Agent 请求 关于浏览器和它平台的信息,如Mozilla5.0
Accept 请求 客户能处理的页面的类型,如text/html
Accept-Charset 请求 客户可以接受的字符集,如Unicode-1-1
Accept-Encoding 请求 客户能处理的页面编码方式,如gzip
Accept-Language 请求 客户能处理的自然语言,如en(英语),zh-cn(简体中文)
Host 请求 服务器的DNS名称。从URL中提取出来,必须
Referer 请求 用户从该URL代表的页面出发访问当前请求的页面。(上一次访问的地址)
Cookie 请求 将以前设置的Cookie送回服务器,可用来作为会话信息
Date 双向 消息被发送时的日期和时间
Server 响应 关羽服务器的信息,如Microsoft-IIS/6.0 (一般隐藏,暴露不安全)
Content-Encoding 响应 内容是如何被编码的(如gzip)
Content-Language 响应 页面所使用的的自然语言
Content-Length 响应 以直接计算的页面长度
Content-Type 响应 页面的MIME类型
Last-Modified 响应 页面最后被修改的时间和日期,在页面缓存机制中意义重大
Location 响应 提示客户将请求发送给别处,即重定向到另一个URL
Set-Cookie 响应 服务器希望客户保存一个Cookie

标签:HTTP,缓存,浏览器,请求,30,服务器,页面
From: https://www.cnblogs.com/ludingchao/p/17579402.html

相关文章

  • 【大联盟】20230713 T1 方向矩阵(rect) 题解 CF1666A 【Admissible Map】
    题目描述here。题解赛时得分:60/100。想到了正解,但调不出来,就改写暴力了。。。首先,我们把问题转化成每个点都入度为\(1\)。我们考虑合法子串只有两种形式:注意到U和D,要么同时出现,要么同时不出现,因为如果存在U,就说明U所在这一行得到度数减少了,一定需要上一行D来弥补......
  • 20230724练习总结
    CF627F这个题的题面翻译其实就已经把做法提示得很明显了。每一次操作相当于是把\(0\)移动到相邻的节点上。考虑不加边,那接判断\(0\)移到后是否相同即可。现在要加一条边,可以先把\(0\)移动到位,判断是否相等。可以观察到如果加一条边影响的应该是一个环——顺移一个位置......
  • 使用 MyBatis 相关依赖包(20230725)
    开发SpringBoot应用时使用MyBatis的相关依赖包…… 说明:本文首次发布于2023-7-2510点(北京时间),其中的“最新”是这个时间点最新。 0、序章梳理开发SpringBoot项目时,使用各种MyBatis相关依赖包的版本及其关系。 1、SpringBoot2.7.13默认MyBatisFramewo......
  • SpringBoot中使用测试框架MockMvc来模拟HTTP请求测试Controller接口
    场景Java中进行单元测试junit.Assert断言、Mockito模拟对象、verify验证模拟结果、Java8中lambda的peek方法使用:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/127492361上面讲了开发过程中一些测试方法。如果需要在代码中直接测试某个Controller接口,除了每次启......
  • jmeter 使用https协议(jmeter不添加ssl证书的解决方案)
    使用https协议时,jmeter不添加ssl证书的解决方法:使用https协议,访问时将域名替换成真实的IP地址及端口号,如下图: ......
  • 20230725
    复赛动态规划——01背包例题:采药题目描述时间限制:1s空间限制:256M题目描述:松下问童子,言师采药去,云深不知处,只在此山中辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一......
  • 浏览器取消强制访问HTTPS
    浏览器开启https重定向,但是你访问的网页默认不能够进行https访问,只可以访问http,那么就需要取消浏览器的默认转发请求谷歌浏览器:chrome://net-internals/#hstsEdge浏览器:edge://net-internals/#hsts......
  • 协议 tcp rpc http websocket
    传输层:tcp,udp应用层:http,grpc,websocket浏览器服务器太多了,互相沟通需要统一的协议,http主要用于B/S如果是公司内部,轻量小巧定制化,用rpchttp是半双工,同一时间,只能一方发送消息,客户发送请求,建立http连接后,通过header可以申请升级到websocket协议 待补充wireshark的抓包分析:......
  • OkHttp发送请求流程
    OkHttp发送请求流程Request主要包含5个属性,涵盖请求的基本信息:urlmethodheadersbodytagspublicfinalclassRequest{finalHttpUrlurl;finalStringmethod;finalHeadersheaders;final@NullableRequestBodybody;finalMap<Class<?>,Object>tags;......
  • 重学HTTP:理解同源策略和CORS
    ​每次遇到跨域、代理、CORS这几个词都懵懵的,我决定一次把他们都搞明白,以后遇到他们再也不用害怕了。一、什么是同源策略?同源策略是在1995年由Netscape公司引入到浏览器的,目前所有浏览器都支持,它是浏览器最重要的安全保障,目的是严格管理不同网站间相互的资源访问(严格来说是不同......