HTTP基础

一、HTTP协议

        1、HTTP协议概念

                HTTP的全称是:Hyper Text Transfer Protocol,意为 超文本传输协议。它指的是服务器和客户端之间交互必须遵循的一问一答的规则。形容这个规则:问答机制、握手机制。

                它规范了请求和响应内容的类型和格式, 是基于 TCP/IP 协议的。

                HTTP协议是由W3C组织管理和维护的。

                HTTP 是一种应用层协议,是基于 TCP/IP 通信协议来传递数据的,其中 HTTP1.0、HTTP1.1、HTTP2.0 均为 TCP 实现,HTTP3.0 基于 UDP 实现。现主流使用 HTTP1.0 和 HTTP3.0

                协议: 为了使数据在网络上从源头到达目的,网络通信的参与方必须遵循相同的规则,这套规则称为协议,它最终体现为在网络上传输的数据包的格式。
                注意: 当我们访问一些网页时,是显示通过 HTTPS 来进行通信的,并且当下大多数的网页都是通过 HTTPS 来进行通信的,因为 HTTPS 在 HTTP 的基础上做了一个加密的工作。HTTPS 将在本文末尾具体介绍

        2、HTTP协议的组成

                由HTTP协议的概念可知,它分为问和答两部分。其中问指的就是请求部分,而答指的就是响应部分。

                2.1、请求部分

                        请求行: 永远位于请求的第一行

                        请求消息头: 从第二行开始,到第一个空行结束

                        请求的正文: 从第一个空行后开始,到正文的结束

                2.2、响应部分

                        响应行: 永远位于响应的第一行

                        响应消息头: 从第二行开始,到第一个空行结束

                        响应的正文: 从第一个空行后开始,到正文的结束

                2.3、消息头的共性

                        消息头名称首字母大写,多个单词每个单词的首字母都大写。

                        多个单词用-分隔 名称和值之间用冒号加空格分隔

                        多个值之间用逗号加空格分隔 两个头之间用回车分隔

        3、请求部分

                3.1、请求行:

                        GET /day03/1.html HTTP/1.1

内容说明
GET请求的方式。(还有POST)
/day03/1.html请求的资源。
HTTP/1.1使用的协议,及协议的版本。
                3.2、请求头
内容说明
Accept告知服务器,客户浏览器所支持的MIME类型。
Accept-Encoding告知服务器,客户浏览器所支持的压缩编码格式。最常用的就是gzip压缩。
Accept-Language告知服务器,客户浏览器所支持的语言。一般都是zh_CN或en_US等。
Referer告知服务器,当前请求的来源。 只有当前请求有来源的时候,才有这个消息头。从地址栏输入的没有来源。 作用:1 投放广告 2 防盗链
Content-Type告知服务器,请求正文的MIME类型。
Content-Length告知服务器,请求正文的长度。
User-Agent浏览器相关信息
Connection: Keep-Alive连接的状态:保持连接
If-Modified-Since告知服务器,客户浏览器缓存文件的最后修改时间。
Cookie()会话管理相关,非常的重要。
                3.3、Referer

                        告诉服务器,我(当前请求)从哪里来?

                        作用:1、防盗链 2、统计工作

if(Referer.equals("www.baibu.com")){

        

}

                 3.4、请求正文

                        1、只有post请求方式,才有请求的正文。get方式的正文是在地址栏中的。

                        2、表单的输入域有name属性的才会被提交。不分get和post的请求方式。

                3.5、Get/Post的区别

                        get: 1、请求参数在请求行中,在url后。2、请求的url长度有限制的  3、不太安全

                        POST:1、请求参数在请求体中  2、请求的url长度没有限制的  3、相对安全

        4、响应部分

                4.1、响应行

HTTP/1.1 200 OK

内容说明
HTTP/1.1使用协议的版本。
200响应状态码
OK状态码描述
                4.2 、常用状态码
状态码说明
200一切都OK
404请求资源未找到
500服务器错误
                4.3、响应消息头
消息头说明
Location请求重定向的地址,常与302,307配合使用。
Server服务器相关信息。
Content-Type告知客户浏览器,响应正文的MIME类型。
Content-Length告知客户浏览器,响应正文的长度。
Content-Encoding告知客户浏览器,响应正文使用的压缩编码格式。常用的gzip压缩。
Content-Language告知客户浏览器,响应正文的语言。zh_CN或en_US等等。
Content-Disposition告知客户浏览器,以下载的方式打开响应正文。
Refresh定时刷新
Last-Modified服务器资源的最后修改时间。
Set-Cookie()会话管理相关,非常的重要
Expires:-1服务器资源到客户浏览器后的缓存时间
Catch-Control: no-catch不要缓存,//针对http协议1.1版本

        5、请求的组成部分

                1、请求行  2、请求头  3、请求空行  4、请全体

        6、请求的方式:

                HTTP的请求方式有7种,我们最常用的有两种

                1、get        2、post

                注意:只有post请求方式才有请全体

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

springboot中抽象类无法注入到ioc容器

1、背景 在写代码时,发现service接口有两个实现类,并且两个实现类中没有对类名重命名,属性注入的时候也没有使用byName或Qualifier,正确情况下会发生多实现报错的问题,以前对这个问题进行解析过。 2、调试过程 我想…

Java面试题:Redis1_Redis的使用场景和如何解决Redis缓存穿透问题

Redis使用场景常见问题 缓存 缓存三兄弟(穿透,击穿,雪崩) 双写一致 持久化 数据过期策略 数据淘汰策略 分布式锁 setnx,redisson 消息队列,延迟队列 … 解决Redis缓存穿透问题 缓存穿透问题 请求->redis缓存->mysql数据库 当一个新请求到来时,先会访问redi…

小程序配置自定义tabBar及异形tabBar配置操作

什么是tabBar? 小程序的tabbar是指小程序底部的一组固定导航按钮,通常包含2-5个按钮,用于快速切换小程序的不同页面。每个按钮都有一个图标和文本标签,点击按钮可以切换到对应的页面。tabbar通常放置在小程序的底部,以…

gitlab之cicd的gitlab-runner cicd实践-rpm离线安装

目录 概述资源官方资源离线资源 操作环境验证gitlab-runner安装注意事项重启向gitlab注册CICD流程测试 概述 gitlab此文使用rpm离线安装的方式,使用 gitlab-runner dockerfile构建运行环境: 如有兴趣可以参考这篇文章   gitlab选择 docker-compose 执行…

Leetcode 剑指 Offer II 080.组合

题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer(专项突击版)系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个…

sh发送邮件如何通过配置SMTP服务器来实现?

sh发送邮件的操作方法?如何使用Shell脚本自动发信? 在Shell脚本中实现邮件发送功能是一项常见需求,特别是在自动化任务执行或系统监控中。AokSend将介绍如何通过配置SMTP服务器来实现sh发送邮件的方法和注意事项。 sh发送邮件:安…

01Linux以及操作系统概述

课程目标 1.了解现代操作系统的整体构成及发展历史 2.了解Linux操作系统及其分支版本 3.直观上理解服务器端与桌面端版本的区别 课程实验 1.通过对CentOS和Ubuntu的演示,直观理解Linux与Windows的异同 课堂引入 本章内容主要为大家详细讲解Linux操作系统(以下简…

Mac电脑pd虚拟机专用windows系统镜像(m1/intel)win10、11镜像文件

入手了Mac电脑后,由于需要用到Windows软件,又嫌安装双系统太复杂,这时候Mac就用到了安装虚拟机,目前最好用的虚拟机是Parallels Desktop,win镜像版本要根据自己的喜好选对,在此提供分别兼容M1和Intel的win1…

开发一套家政上门预约服务系统需要运用的关键技术

家政上门预约服务系统开发是指建立一个在线平台或应用程序,用于提供家政服务的预约和管理功能。该系统的目标是让用户能够方便地预约各种家政服务,如保洁、家庭护理、月嫂、家电维修等,并实现服务供应商管理和订单管理等功能。 开发一套家政上…

力扣2928. 给小朋友们分糖果 I

题目&#xff1a; 给你两个正整数 n 和 limit 。 请你将 n 颗糖果分给 3 位小朋友&#xff0c;确保没有任何小朋友得到超过 limit 颗糖果&#xff0c;请你返回满足此条件下的 总方案数 。 提示&#xff1a; 1 < n < 501 < limit < 50 思路&#xff1a; 枚举法…

构建高效稳定的短视频直播系统架构

随着短视频直播的迅猛发展&#xff0c;构建一个高效稳定的短视频直播系统架构成为了互联网企业的重要挑战。本文将探讨如何构建高效稳定的短视频直播系统架构&#xff0c;以提供优质的用户体验和满足日益增长的用户需求。 ### 1. 短视频直播系统的背景 短视频直播近年来蓬勃发…

WPF 依赖属性原理、 附加属性

依赖属性如何节约内存 MSDN中给出了下面几种应用依赖属性的场景&#xff1a; 希望可在样式中设置属性。 希望属性支持数据绑定。 希望可使用动态资源引用设置属性。 希望从元素树中的父元素自动继承属性值。 希望属性可进行动画处理。 希望属性系统在属性系统、环境或用户…

【thinkphp问题栏】tp5.1重写URL,取消路径上的index.php

在Apache运行thinkphp5.1时&#xff0c;发现系统默认生成的.htaccess不生效。 首先先查看怎么修改伪静态 1、修改Apache的配置文件 在Apache的安装目录下&#xff0c;打开config/httpd.conf。 搜索rewrite.so&#xff0c;将前面的#删掉&#xff0c;表示开启URL重写功能 2、…

LabVIEW与Arm控制器之间的通讯

LabVIEW是一个强大的图形化编程环境&#xff0c;广泛应用于自动化控制、数据采集和测试测量等领域。而Arm控制器则是嵌入式系统中常用的处理器架构&#xff0c;广泛用于各种控制和计算任务。将LabVIEW与Arm控制器进行通讯控制&#xff0c;可以结合二者的优势&#xff0c;实现高…

太阳能辐射整车综合性能环境试验舱

产品别名 步入式恒温恒湿试验箱、步入式温湿度试验箱、温度试验室、模拟环境试验室、大型恒温恒湿箱、步入式高低温湿热交变试验箱、大型高低温箱、步入式老化箱、恒温恒湿试验房、步入式高低温试验箱. 整车综合性能环境试验舱:整车综合性能环境试验舱:主要用于整车高低温存放…

10Linux 进程管理学习笔记

Linux 进程管理 目录 文章目录 Linux 进程管理一.进程1.显示当前进程状态(ps)进程树(pstree)1.1实时显示进程信息(top)顶部概览信息&#xff1a;CPU 状态&#xff1a;内存状态&#xff1a;进程信息表头&#xff1a;进程列表&#xff1a;1.2(htop) 2.终止进程(kill)2.1通过名称…

每天学点小知识:WSL安装Ubuntu 22.04 LTS

前言 本章教会你在不使用虚拟机下使用linux&#xff0c;但是这里建议还是使用虚拟机&#xff0c;或者装一双系统&#xff0c;wsl使用linux还是有很多问题的。 1. 简介WSL WSL&#xff08;Windows Subsystem for Linux&#xff09;是微软为Windows 10及以上版本开发的一项功能…

【计算机毕设】蜗牛兼职网的设计与实现 - 源码免费(私信领取)

免费领取源码 &#xff5c; 项目完整可运行 &#xff5c; v&#xff1a;chengn7890 诚招源码校园代理&#xff01; 1. 研究目的 随着社会的发展&#xff0c;越来越多的大学生和自由职业者希望通过兼职工作来补贴生活或积累工作经验。设计并实现一个基于Java的蜗牛兼职网&#x…

【儿童节特辑】用AI创造音乐,变身小小音乐家!

在儿童节这个充满欢笑的日子里&#xff0c;让我们一起探索如何用AI技术为孩子们准备一份特别的礼物——一张由AI生成的音乐专辑。&#x1f3b5;✨ &#x1f3bc; 文字变旋律&#xff1a;开启音乐创作之旅 想象一下&#xff0c;只需一段文字&#xff0c;就能编织出一曲悠扬悦耳…

Educational Codeforces Round 166 (Rated for Div. 2)题解(A,B,D)

今天真的巨抽象&#xff0c;第三题没做出来&#xff0c;但是第四题过了&#xff0c;也是准备上小分了&#xff0c;因为nnd不按那个分数&#xff0c;而是按照做题数&#xff0c;直接废了 A. Verify Password 题解&#xff1a;小丑水题一个人&#xff0c;按照ASCII码比较一遍直接…