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. RealSenseD435的一些参数整理

    一.深度相机D435 二.自校准功能 https://www.intelrealsense.com/self-calibration-for-depth-cameras/ https://dev.in ...

  2. [转]C#的反射

    一.反射简介 1.1.反射的说明 反射:指程序可以访问.检测和修改它本身状态或行为的一种能力(即:审查元数据并收集关于它的类型信息的能力). ①元数据(编译以后的最基本数据单元:指程序和程序类型本身的 ...

  3. jdbc封装工具类(连接池)

    c3p0配置文件: c3p0-config.xml <c3p0-config> <!-- 使用默认的配置读取连接池对象 --> <default-config> & ...

  4. 攻防世界-Web_php_include(data协议)

    一道简单的文件包含题目 分析代码可知php://被ban了 此题可以用data://协议 payload为(以下两者皆可使用) ?page=data://text/plain,<?php%20s ...

  5. Spring MVC文件上传下载

    Spring MVC文件上传下载 单文件上传 底层是使用Apache fileupload 组件完成上传,Spring MVC对这种方式进行封装. pom.xml <dependency> ...

  6. 从零搭建hadoop集群之安装虚拟机

    1.  打开 VMware 2. 点击编辑 ->  虚拟网络编辑器 点击VMnet8 选中NAT模式(于虚拟机共享主机的ip地址) 设置子网IP 点击NAT设置 3.   设置网关 :和子网IP ...

  7. CAD中如何将图形对象快速转换成三维曲面?

    天小编将接着上节内容给大家分享浩辰CAD软件中将图形对象快速转换成三维曲面的相关操作技巧,感兴趣的小伙伴可以和一起来了解一下哦! CAD中将图形转换为曲面的操作步骤: 1.用浩辰CAD软件中打开图纸后 ...

  8. 更改ubuntu分辨率

    显示器是1920*1080的,ubuntu20里没有,查了一通,修改成功,过程如下: 1.打开终端,输入xrandr, 我用的虚拟机,记下Virtual1 connected primary 1920 ...

  9. python正则表达式提取数据

    re模块, 常用写法 import re def abs_string(): s_string = ' @pytest.mark.Level1@pytest.mark.SmartSharedListd ...

  10. CentOS 6.7 hadoop free版本Spark 1.6安装与使用

    最近的工作主要围绕文本分类,当前的解决方案是用R语言清洗数据,用tm包生成bag of words,用libsvm与liblinear训练模型.这个方案可以hold住6/70万的训练集: LIBLIN ...