http和https

Posted talosant

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了http和https相关的知识,希望对你有一定的参考价值。

HTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 html页面的方法,是规范,买卖东西一样。

HTTPS (Hypertext Transfer Protocol over Secure Socket Layer)简单讲是http的安全版,在http下加入SSL层。

HTTPS 的安全基础是SSL , 因此通过它传输的内容都是经过SSL 加密的, 它的主要作用可以分为两种:

1)建立一个信息安全通道来保证数据传输的安全。

2)确认网站的真实性, 凡是使用了HTTP 的网站, 都可以通过点击浏览器地址栏的锁头标志来

查看网站认证之后的真实信息, 也可以通过CA 机构颁发的安全签章来查询。

SSL(Secure Sockets Layer 安全套接层)主要用于Web的安全传输协议,在传输层对网络连接进行加密,保障在Internet上数据传输的安全。

http的端口号为80

https的端口号为443

 


 

(一)http工作原理

  网络爬虫抓取过程可以理解为模拟浏览器操作的过程。浏览器的主要功能是向服务器发出请求,在浏览器窗口中展示您选择的网络资源,

http是一套计算机通过网络进行通信的规则。

HTTP工作过程      

一次HTTP操作称为一个事务,其工作整个过程如下:

1地址解析

  如用客户端浏览器请求这个页面http://localhost.com:8080/index.htm从中分解出协议名、主机名、端口、对象路径等部分,

对于我们的这个地址,解析得到的结果如下:
    协议名:http
    主机名:localhost.com
    端口:8080
    对象路径:/index.htm

在这一步,需要域名系统DNS解析域名localhost.com,得主机的IP地址。

2、封装HTTP请求数据包

  把以上部分结合本机自己的信息,封装成一个HTTP请求数据包

3封装成TCP包,建立TCP连接(TCP的三次握手)

TCP握手协议 

  第一次握手:建立连接时,客户端发送syn(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
SYN:同步序列编号(Synchronize Sequence Numbers)
    第二次握手:服务器收到syn,必须确认客户的SYNack=j+1,同时自己也发送一个SYN包(syn=k,

SYN+ACK,此时服务器进入SYN_RECV状态;
    第三次握手:客户端收到服务器的SYNACK,向服务器发送确认包ACK(ack=k+1),此包发送完毕,

客户端和服务器进入ESTABLISHED状态,完成三次握手。完成三次握手,客户端与服务器开始传送数据

4客户机发送请求命令

  建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URIUniform Resource Identifier)、

协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。

5服务器响应

服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,

后边是MIME信息包括服务器信息、实体信息和可能的内容。

实体消息是服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此结束,接着,

它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据

6服务器关闭TCP连接

一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,然后如果浏览器或者服务器在其头信息加入了

Connection:keep-aliveTCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。

保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。

 

(二)https的请求与响应

 

http通信由两部分组成:客户端请求消息  服务器响应消息

 

(三)浏览器http请求

 

1) 当用户在浏览器的地址栏中输入一个URL并按回车键之后,浏览器会向http服务器发送http请求。http请求主要分为“Get”“Post”两种方法。

2) 当我们在浏览器输入URL http://www.baidu.com 的时候,浏览器发送一个Request请求去获取 http://www.baidu.com html文件,

服务器把Response文件对象发送回给浏览器。

3) 浏览器分析Response中的 HTML,发现其中引用了很多其他文件,比如Images文件,CSS文件,JS文件。

浏览器会自动再次发送Request去获取图片,CSS文件,或者JS文件。

4)当所有的文件都下载成功后,网页会根据HTML语法结构,完整的显示出来了。

 

URL(Uniform / Universal Resource Locator的缩写):统一资源定位符,是用于完整地描 Internet上网页和其他资源的地址的一种标识方法。

基本格式:scheme://host[:port#]/path/…/[?query-string][#anchor]

  • scheme:协议(例如:httphttpftp)
  • host:服务器的IP地址或者域名
  • port:服务器的端口(如果是走协议默认端口,缺省端口80)
  • path:访问资源的路径
    • query-string:参数,发送给http服务器的数据
    • anchor:锚(跳转到网页的指定锚点位置)

例如:

(四)客户端http请求

URL只是标识资源的位置,而http是用来提交和获取资源。客户端发送一个http请求到服务器的请求消息,

包括以下格式:请求行、请求头部、空行、请求数据四个部分组成,下图给出了请求报文的一般格式。

(五)请求方法

GET http://www.baidu.com/ http/1.1

根据http标准,http请求可以使用多种请求方法。

http 0.9只有基本的文本 GET 功能。

http 1.0完善的请求/响应模型,并将协议补充完整,定义了三种请求方法: GETPOST HEAD方法。

http 1.1 1.0 基础上进行更新,新增了五种请求方法:OPTIONSPUTDELETETRACE CONNECT 方法。

http 2.0(未普及)请求/响应首部的定义基本没有改变,只是所有首部键必须全部小写,而且请求行要独立为 :method:scheme:host:path这些键值对。

 

以上是关于http和https的主要内容,如果未能解决你的问题,请参考以下文章

http和https的区别?

HTTPS原理

http 与 https

网络相关

浅析https

前端面试题-http和https区别