HTTP、HTTPS协议

1.HTTP协议
HTTP是超文本传输协议,是一个基于请求与响应,无状态的应用层协议
2.HTTPS协议
HTTPS是超文本传输安全协议
为什么HTTPS是安全的?加密是用什么实现的
答:因为它在HTTP协议上建立了SSL加密层,对传输数据进行加密,HTTP先与SSL通信,SSL再与TCP通信。有了SSL就会对信息加密,身份验证以及完整性校验。SSL的功能实现是基于散列函数,对称加密和非对称加密。
3.HTTP和HTTPS的区别
(1)HTTP是明文传输,HTTPS是密文传输
(2)HTTPS一般需要到CA申请证书,并且证书免费的比较少,所以需要一定的费用
(3)HTTP的端口是80端口,HTTPS是443
(4)HTTP的连接很简单,是无状态的。HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络,比HTTP协议安全
4.应用层都有哪些协议
DNS:域名解析协议 FTP:文件传输协议 SMTP:邮件传输协议
HTTP:超文本传输协议 Telnet:远程登录协议
5.网页上输入一个UR,按下回车发生的事情
(1)先使用DNS进行域名解析,根据URL得到IP地址
(2)客户端根据具体的IP地址,找到具体的服务器
(3)客户端与服务器端建立TCP连接
(4)客户端向服务器端发送一个http请求
(5)服务器端给客户端响应html文件
(6)客户端解析html文件,并请求文件中的资源
(7)客户端对页面进行渲染,关闭TCP连接
6.常用状态码
100:客户端继续发送请求给服务器
200:请求成功
201:客户端请求成功,并且新的资源已经按照请求建立
300:请求的资源有一系列的回馈信息
301:永久重定向,请求的资源已经永久移动到新的位置
302:临时重定向,请求的资源临时被移动到新的位置
400:语义错误,当前的请求服务器不能理解
403:拒绝访问,服务器理解了你的请求,但是拒绝访问
404:请求失败,找不到客户端请求的资源
500:服务器无法完成对请求的处理
7.Get和Post的区别
(1)get比post不安全,get请求的数据放在url上,而post的数据对用户是不可用的
(2)get对数据有一定的长度限制,因为数据是存放在url的,url有一定的长度限制,而post没有
(3)get在浏览器回退时是没有影响的,而post会再次提交请求
(4)浏览器对get的请求会主动缓存,而post不会
(5)浏览器对get的请求参数会保存在浏览器的历史记录中,而post不会
(6)get对于表单的数据集只能是ASCII字符集,而post支持所有字符集
(7)get产生的url地址可以被收藏为书签,而post不能
8.代理服务器
代理网络用户去取得网络信息。它是网络信息的中转站,它负责转发合法的网络信息,对转发进行控制和登记。可用于多个目的,最基本的功能是连接,还包括安全性、缓存、访问控制管理等。
9.跨域:当一个请求的协议、端口、域名三者之间任意一个与当前页面url不同,即为跨域
10.HTTP常见header
Content-type:数据类型 Content-length:请求体的长度
host:告诉服务器,所请求的资源在哪个主机上的哪个端口上
user-agent:告诉服务器,客户端的操作系统及浏览器信息
referer:当前页面是从哪个页面跳转过来的
location:告诉客户端接下来要去哪里访问
11.公网IP
互联网上的每一个计算机都有一个IP地址,该地址唯一确定互联网上的一台计算机
12.HTTP1.0 HTTP1.1 HTTP2.0的区别
http1.0与http1.1的区别:
(1)支持多连接,一个TCP连接上可以处理多个http请求
(2)节约宽带,http1.1支持只发送header信息,如果服务器认为客户端有权访问,则返回100,客户端继续发送请求信息,如果服务器认为客户端没有权限,则不用再发送,节约了宽带
(3)缓存处理,http1.1支持更多的缓存控制策略
(4)host域
http1.1与http2.0的区别:
(1)多路复用,同一个连接并发处理多个请求
(2)头部数据压缩,对header的数据压缩
(3)服务器推送,允许服务器端推送资源给客户端
13.计算机网络每层的功能及协议
应用层:负责应用程序之间的通信,协议有http、ftp、smtp、telnet
传输层:负责数据的传输,协议有tcp、udp
网络层:负责地址管理和路由选择,协议有ip、arp
数据链路层:负责设备之间的数据帧的识别和传送
物理层:负责光、电信号的传递方式

原文地址:https://blog.51cto.com/14232274/2487442

时间: 2024-11-09 06:00:28

HTTP、HTTPS协议的相关文章

HTTPS协议

原文出自:http://www.cnblogs.com/zhuqil/archive/2012/07/23/2604572.html HTTPS其实是有两部分组成:HTTP + SSL / TLS, 也就是在HTTP上又加了一层处理加密信息的模块.服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据 1. 客户端发起HTTPS请求 这个没什么好说的,就是用户在浏览器里输入一个https网址,然后连接到server的443端口. 2. 服务端的配置 采用HTTPS协议的服

HTTPS协议在Tomcat中启用是如何配置的

版权声明:本文为博主阿甘(Gane_Cheng)原创文章,欢迎转载,传播知识,请留言告知并注明出处,方便文章有误改正之后能找到原文.个人之言,请抱着怀疑的态度参考! 目录(?)[+] 转载请注明出处: http://blog.csdn.net/gane_cheng/article/details/53001846 http://www.ganecheng.tech/blog/53001846.html (浏览效果更好) 本文将讲解HTTPS协议在Tomcat中启用是如何配置的. 概念简介 Tom

Https协议:SSL建立过程分析(也比较清楚,而且有OpenSSL的代码)

web访问的两种方式: http协议,我们一般情况下是通过它访问web,因为它不要求太多的安全机制,使用起来也简单,很多web站点也只支持这种方式下的访问. https协议(Hypertext Transfer Protocol over Secure Socket Layer),对于安全性要求比较高的情况,可以通过它访问web,比如工商银行https://www.icbc.com.cn/icbc/(当然也可以通过http协议访问,只是没那么安全了).其安全基础是SSL协议. SSL协议,当前版

iOS9要求网络使用HTTPS协议-解决办法

iOS9要求App内访问的网络必须使用HTTPS协议.原有的HTTP请求会报错,适配方法如下. 打开TARGETS-Build Phases, 添加New Run Script Phase,代码如下: # Add exception for Debug builds if [ "${CONFIGURATION}" == "Debug" ] then # Remove exception existing builds /usr/libexec/PlistBuddy

大型网站的 HTTPS 实践(1):HTTPS 协议和原理

转自:http://op.baidu.com/2015/04/https-s01a01/ 1 前言 百度已经于近日上线了全站 HTTPS 的安全搜索,默认会将 HTTP 请求跳转成 HTTPS.本文重点介绍 HTTPS 协议, 并简单介绍部署全站 HTTPS 的意义. 2 HTTPS 协议概述 HTTPS 可以认为是 HTTP + TLS.HTTP 协议大家耳熟能详了,目前大部分 WEB 应用和网站都是使用 HTTP 协议传输的. TLS 是传输层加密协议,它的前身是 SSL 协议,最早由 ne

tomcat中http与https协议socket工厂

tomcat中http与https协议socket工厂,布布扣,bubuko.com

Fiddler抓取HTTPS协议

HTTPS协议握手过程: 1,客户端明文请求,把自己支持的非对称加密算法(用于使用CA证书公钥加密计算生成协商密钥的随机数per_master).对称加密算法(用于以后使用协商密钥加密传输内容).验证数据完整性的HASH算法.随机数Random_C发给服务器. 2,服务器发回客端的明文信息,包含选择一套加密算法.HASH算法.CA证书.随机数Random_S.CA证书中包含服务器地址.公钥.证书颁发机构信息和签名. 3,客户端做五件事: a)对证书合法性.证书中包含的地址与正在访问的地址是否一致

Loadrunner对https协议(单双向SSL)的web端性能测试

1.项目背景 1.1 单双向SSL的含义及部署 单向SSL即我们说到的https协议. 特点是,浏览器需要请求验证服务器证书: 基本含义是:一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息.它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版. 双向SSL顾名思义就是双方都需要验证证书的协议,浏览器首先向服务端请求证书,然后服务器端需要向浏览器请求目前登陆用户的个人证书验证. 1.2 系统的基本部署 单向SSL交互过程: 使用单向SSL时,仅通过虚拟主

iOS ASIHTTPRequest用https协议加密请求

iOS 终端请求服务端数据时,为了保证数据安全,我们一般会使用https协议加密,而对于iOS的网络编程,我们一般会使用开源框架:ASIHTTPRequest,但是如果使用传统的http方式,即使忽略验证的话,程序也会报[error-9844]的错误,具体错误如下描述: [Error Domain=ASIHTTPRequestErrorDomain Code=1 "A connection failure occurred" UserInfo=0x6aafa30 {NSUnderlyi

Ubuntu+NDK编译openssl(为了Android上使用libcurl且支持HTTPS协议)

为了Android上使用libcurl且支持HTTPS协议,需要依赖openssl,因此先来了解一下如何编译OpenSSL1.编译ARM下的共享库(默认的)我使用的是guardianproject的openssl,它已经提供好了android的ndk makefile.git clone https://github.com/guardianproject/openssl-android.git然后直接cd到该目录,$NDK/ndk-build就行.注意默认的使用NDKr5b,如果没有该版本,请