HTTP和HTTPS有什么区别

1、传输过程中信息是否加密,HTTP是超文本传输协议,信息是明文传输,HTTPS是具有安全性的SSL加密的超文本传输协议,信息是加密传输;

2、服务端使用的端口号不一致,HTTP使用80端口,HTTPS使用443端口;

3、连接状态不一致,HTTP是无状态的,HTTPS是HTTP+SSL协议构建的加密传输、身份认证的网络协议;

4、是否需要证书:HTTP不需要CA认证,HTTPS需要;

HTTP的状态码分类

1**:信息已被服务端成功接收,需要客户端进一步操作;

2**:操作被成功接收并处理;

3**: 重定向,需要进一步操作以完成请求;

4**:客户端错误,请求中包含了语法错误或无法完成的请求;

5**:服务端错误,服务器在处理请求的过程中发生了错误;

常见的HTTP状态码

200:OK

301:永久重定向

302:临时重定向

403:Fobidden,服务器理解客户端的请求,但是拒绝执行该请求

404:请求的页面/资源不存在

502:Bad Gateway,作为网管或代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应

503:服务器暂时无法处理客户端的请求;

504:充当网关或代理的服务器,未及时从远端服务器获取请求;

POST和GET的相同点和区别

相同点:

① 都是TCP链接;

不同点:

① GET在浏览器回退时是无害的,而POST会再次提交请求;

② GET产生的URL地址可以被添加到书签,而POST不可以;

③ GET请求会被浏览器主动缓存,而POST不会,除非手动设置;

④ CET请求参数只能进行url编码,而POST支持多种编码格式;

⑤ GET请求在URL中传送的参数是有长度限制的,而POST没有;

⑥ 参数的数据类型,GET只接受ASCII字符,而POST没有限制;

⑦ GET比POST更不安全,参数直接暴露在URL中,所以不能用来传递敏感信息;

⑧ GET参数通过URL传递,而POST则放在Request Body中;

POST请求参数类型

POST提交的数据必须放在消息主体中,服务端通常是根据请求头headers中的Content-Type字段来获知请求中的消息主体使用何种方式编码,再对主体进行解析;

application/x-www-form-urlencoded:浏览器的原生表单;

multipart/form-data:一般用于上传文件;

application/json:服务消息注意是序列化的json;

text/xml:

HTTP请求头常见字段

method:请求方法

Accept:浏览器可接受的MIME类型

Accept-Charset:浏览器可接受的字符集

Accept-Encoding:浏览器能够进行解码的数据编码方式,如gzip

Accept-Language:浏览器所希望的语言种类,

Authorization:授权信息

Connection:表示是否需要持久连接,

Content-Length:表示请求消息正文的长度

Content-type:消息体格式

Cookie:设置cookie

From:请求发送者的email地址,由一些特殊的web客户程序使用

Host:初始URL中的主机和端口

If-Modified-Since:只有当所请求的内容在指定的日期之后又经过修改才返回它。否则返回304(Not Modified);

Pragma:指定no-cache值表示服务器必须返回一个刷新后的文档;

Referer:包含了一个URL,用户从该URL代表的页面出发访问当前请求的页面;

User-Agent:浏览器类型

HTTP的keep-alive

在请求头中添加:Connection: keep-alive;

一次TCP连接中可以持续发送多份数据而不会断开连接。

优点:

减少TCP建立连接的次数,减少TIME_WAIT状态连接;

提高性能、提高HTTPd的吞吐率

缺点:

长时间的TCP连接容易导致系统资源无效占用;

HTTP响应

主要包含三个部分

HTTP状态码:表示服务器对请求的响应结果

响应头:包含服务器对请求的响应信息

响应体:服务器发给客户端的正文数据;

HTTP-看这一篇就够了的更多相关文章

  1. 关于 Docker 镜像的操作,看完这篇就够啦 !(下)

    紧接着上篇<关于 Docker 镜像的操作,看完这篇就够啦 !(上)>,奉上下篇 !!! 镜像作为 Docker 三大核心概念中最重要的一个关键词,它有很多操作,是您想学习容器技术不得不掌 ...

  2. JVM内存模型你只要看这一篇就够了

    JVM内存模型你只要看这一篇就够了 我是一只孤傲的鱼鹰 让我们不厌其烦的从内存模型开始说起:作为一般人需要了解到的,JVM的内存区域可以被分为:线程栈,堆,静态方法区(实际上还有更多功能的区域,并且这 ...

  3. 【java编程】ServiceLoader使用看这一篇就够了

    转载:https://www.jianshu.com/p/7601ba434ff4 想必大家多多少少听过spi,具体的解释我就不多说了.但是它具体是怎么实现的呢?它的原理是什么呢?下面我就围绕这两个问 ...

  4. Java中的多线程=你只要看这一篇就够了

    如果对什么是线程.什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内. 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现.说这个话其 ...

  5. [转帖]nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件

    nginx学习,看这一篇就够了:下载.安装.使用:正向代理.反向代理.负载均衡.常用命令和配置文件 2019-10-09 15:53:47 冯insist 阅读数 7285 文章标签: nginx学习 ...

  6. 2019-5-25-win10-uwp-win2d-入门-看这一篇就够了

    title author date CreateTime categories win10 uwp win2d 入门 看这一篇就够了 lindexi 2019-5-25 20:0:52 +0800 2 ...

  7. 鸿蒙应用程序Ability(能力)看这一篇就够

    本节概述 什么是Ability Ability分类 Ability生命周期 Ability之间跳转 什么是Ability Ability意为能力,是HarmonyOS应用程序提供的抽象功能.在Andr ...

  8. windows server 2019 域控批量新增不用,只看这一篇就够了,别的不用看

    windows server 2019 域控批量新增不用,只看这一篇就够了,别的不用看 1. 新建excel表格 A B C D E 姓 名 全名 登录名 密码 李 四 李四 李四 test123!@ ...

  9. 什么是 DevOps?看这一篇就够了!

    本文作者:Daniel Hu 个人主页:https://www.danielhu.cn/ 目录 一.前因 二.记忆 三.他们说-- 3.1.Atlassian 回答"什么是 DevOps?& ...

  10. python面试看这一篇就够了

    python-面试通关宝典 有面Python开发方向的,看这一个repo就够啦? 语言特性 1.谈谈对 Python 和其他语言的区别 Python属于解释型语言,当程序运行时,是一行一行的解释,并运 ...

随机推荐

  1. java的特性和版本

    java的特性 简单性 面向对象性 可移植性(跨平台性) 高性能 安全性 健壮性 多线程 分布式 动态性 java的三个版本 javaSE(标准版),主要是桌面程序开发 javaME(微型版),主要是 ...

  2. MargeSort

    归并排序(Merge Sort)是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用.将已有序的子序列合并,得到完全有序的序列: ...

  3. Python SQLite创建数据库和数据表及数据的增删改查

    SQLite是一款轻型的SQL类型数据库,处理速度快且占用资源非常低,Python自带, 不需要配置不需要任何外部的依赖.数据库本身就是一个.db文件,非常适合存储本地数据.本文主要介绍Python ...

  4. ASP.NET中maxRequestLength和maxAllowedContentLength的区别;上传大文件设置IIS7文件上传的最大大小

    https://blog.csdn.net/qq_23663693/article/details/89920039 maxRequestLength表示ASP支持的最大请求大小,而maxAllowe ...

  5. EhLib 9安装

    EhLib 9安装 安装EhLib: 在Installer文件夹里找到EhLibInstaller.exe,右键以管理员权限运行EhLibInstaller.exe. 按照提示一路安装下来,顺利完成. ...

  6. MxDraw云图平台 2021.10.28更新,H5在线CAD,网页CAD,网页浏览编辑DWG

    1. 增加转换CAD文件的outpath参数设置,设置输出文件路径2. 修改转换程序,在 windows server 2010上,没有buf,距到中文路径的文件 ,转换会失败问题3. 修改宋体字体显 ...

  7. SpringBoot_Thymeleaf项目开发

    用Springboot集成Thymeleaf,开发一个前后端不分离的Web项目,记录下每个步骤:(IDEA版) 一.项目初始化: 1.打开idea,以次点击 File -- New -- Projec ...

  8. Qt多线程编程之QThread

    背景引言[ GUI主线程 +子线程] 跟C++11中很像的是,Qt中使用QThread来管理线程,一个QThread对象管理一个线程,在使用上有很多跟C++11中相似的地方,但更多的是Qt中独有的内容 ...

  9. BIP change数据改变前的事件

    viewModel .get("certMaterialClass_name") .on("beforeValueChange", function (data ...

  10. error: the option `Z` is only accepted on the nightly compiler

    问题记录 $ cargo expand Checking helo v0.1.0 (/Users/Buzz/Documents/git/rust-lang/hello) error: the opti ...