HTTP/HTTPS协议

1、HTTP协议

(1)HTTP协议简介

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。

HTTP是一个客户端和服务器端请求和应答的标准(TCP),即建立在TCP上的无状态连接。客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。

超文本传输协议是一种应用层协议。

(2)HTTP协议的工作模式

HTTP协议的工作模式是一次请求(request)和一次响应(response)的模式,即请求request-响应response式模式。

1)HTTP请求响应的过程:

客户端发送一个HTTP请求,说明客户端想要访问的资源和请求的动作,服务端收到请求之后,服务端开始处理请求,并根据请求做出相应的动作访问服务器资源,最后通过发送HTTP响应把结果返回给客户端。

2)HTTP协议分成了两个部分:
  • 请求协议
  • 响应协议

(3)HTTP 请求报文协议

HTTP请求是客户端往服务端发送请求动作,告知服务器自己的要求。

HTTP请求又包含了四个部分:

  • 请求行(request-line)
  • 请求头(request-header)
  • 空行
  • 请求数据(request-content),也叫作请求内容或者请求主体
1)请求行

请求行又可以分成三个部分:请求方式、请求路径、协议版本

GET /model/list_father.php HTTP/1.1

其中,GET就是请求方式,/model/list_father.php就是请求路径,HTTP/1.1就是协议版本号。

请求方式:
GET — 访问服务器的资源
POST — 向服务器发送要修改的数据
HEAD — 获取服务器文档的首部
PUT — 向服务器上传资源
DELETE— 删除服务器的资源

请求路径:
表示服务器的资源目录定位

协议版本:
表示使用的HTTP协议版本

需要注意的几点:

  • 请求方式一般有GET、POST、PUT、DELETE,含义分别是获取、修改、上传、删除
  • GET 主要用于从服务器获得数据,POST 主要用于从浏览器提交数据到服务器。
  • GET方式仅仅为获取服务器资源,方式较为简单,因此在请求方式为GET的HTTP请求数据中,请求正文部分可以省略,直接将想要获取的资源添加到URL中
  • GET请求没有请求体信息,POST请求有请求体信息。
  • 请求行需要单独的占一行,用来说明当前请求的最基本的信息
  • HTTP协议以前是1.0版本,现在是1.1版本
2)请求头

请求头就是所有当前需要用到的协议项的集合。

协议项就是浏览器在请求服务器的时候事先告诉服务器的一些信息,或者一些事先的约定。

常见的请求头:

  • Host: 当前url中所要请求的服务器的主机名(域名)
  • Accept-Encoding:是浏览器发给服务器,声明浏览器支持的压缩编码类型 比如gzip
  • Connection:表示浏览器和服务器之间的连接方式, 浏览器和服务器连接是长连接(keep-alive)还是短连接
  • Accept_charset:表示,浏览器支持的字符集
  • Referer:表示,此次请求来自哪个网址
  • Accept-Language:可以接收的语言类型,cn,en,有权重的高低之分
  • Cookie:如果之前当前请求的服务器在浏览器端设置了数据(cookie),那么当前浏览器再次请求该服务器的时候,就会把对应的数据带过去
  • User-Agent:用户代理,当前发起请求的浏览器的内核信息
  • Accept:表示浏览器可以接收的数据类型,text/html,image/img
  • Content-length(post):只有post提交的时候才会有的请求头,显示的是当前要提交的数据的长度(字节)。
3)空行

用来分离请求头和请求数据,意思就是请求头到此结束。

4)请求数据

GET方式请求时没有请求数据,只有POST请求时才有请求数据。

(4)HTTP 响应报文协议

服务器收到了客户端发来的HTTP请求后,根据HTTP请求中的动作要求,服务端做出具体的动作,将结果回应给客户端。

HTTP响应也分成了四个部分:

  • 响应行(状态行)
  • 响应头
  • 空行
  • 响应主体(响应数据)
1)响应行

响应行共分成3部分:协议版本号、状态码、状态描述

 HTTP/1.1 200 OK

常见的状态码:

状态码含义
1xx表示HTTP请求已经接受,继续处理请求
2xx表示HTTP请求已经接收并处理完成
3xx表示把请求访问的URL重定向到其他目录
4xx表示客户端出现错误
5xx表示服务端出现错误
  • 200—OK:请求已经正常处理完毕
  • 301—Moved permanently:请求永久重定向
  • 302—Move temporarily:请求临时重定向
  • 304—Not Modified:请求被重定向到客户端本地缓存
  • 400—Bad Request:客户端请求存在语法错误
  • 401—Unauthorized:客户端请求没有经过授权
  • 403—Forbidden:客户端的请求被服务器拒绝,一般为客户端没有访问权限
  • 404—Not Found:客户端请求的URL在服务端不存在
  • 500—Internal Server Error:服务端永久错误
  • 503—Server Unavailable:服务端发生临时错误
2)响应头

一些协议的集合,以(协议名:值)的形式

常见的有:

  • Server:服务器主机信息
  • Date:响应时间
  • Connection:表示浏览器和服务器之间的连接方式, 浏览器和服务器连接是长连接(keep-alive)还是短连接
  • Content-length:响应主体的长度(字节)
  • Content-type:响应内容的数据类型:text/html,image/png等
  • Content-encoding:文件编码格式
  • Cache-control:缓存控制,no-cached不要缓存
3)空行

用来分割响应头与响应主体,也就是响应头到此结束。

4)响应主体

就是服务器反馈给浏览器的数据。

注:
HTTP协议响应报文分为4部分,每部分之间使用 \r\n 进行分割。

2、https协议

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP上建立SSL加密层,并对传输数据进行加密,是HTTP协议的安全版。HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。用于安全的HTTP数据传输,客户端发起一个到服务器上指定端口(默认端口为443)的HTTPS请求。

HTTPS主要作用是:
(1)对数据进行加密,并建立一个信息安全通道,来保证传输过程中的数据安全;
(2)对网站服务器进行真实身份认证。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值