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状态码:表示服务器对请求的响应结果

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

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

最新文章

  1. Hadoop 2.5.2 eclipse plugin 编译 win7 集成
  2. javascript中的对象之间继承关系
  3. 使用get传参的时候,参数在后头获取不到或者出现别的错误。
  4. python 练习 19
  5. LTP学习
  6. sql调用方法精简
  7. SVN中update to revision与revert to revision的区别
  8. 8.3 sikuli 集成进eclipse 报错:eclipse中运行提示 Win32Util.dll: Can't load 32-bit .dll on a AMD 64 bit platform
  9. 《JavaScript高级程序设计》 -- 基本概念(一)
  10. python 每日一练: 读取log文件中的数据,并画图表
  11. HTML基础--position 绝对定位 相对定位 锚点链接
  12. NSString拼接字符串
  13. 基于vue和svg的树形UI
  14. lua--openresty--
  15. P2233 [HNOI2002]公交车路线
  16. 通过tarball形式安装HBASE Cluster(CDH5.0.2)——如何配置分布式集群中的zookeeper
  17. 几行简单代码实现DIV层上显示Tooltip效果
  18. UVA-11925 Generating Permutations (逆向思维)
  19. CentOS7安装weblogic集群思路梳理
  20. 解决ArcMap启动时只停留在初始化界面的方法

热门文章

  1. requests库获取指定关键词的图片,并保存到本地
  2. efk部署
  3. Camstar获取回参
  4. ubuntu 的 apt 命令
  5. Delphi 从字符串中提取数字
  6. wtform的用法
  7. debian11下载软件包及依赖(本地使用)
  8. python bottle小记
  9. php 合并,拆分,追加,查找,删除数组教程
  10. java第七周学习情况