http、http1.0、http1.1、http2.0、https


HTTP(HyperText Transfer Protocol),超文本传输协议,定义了万维网的服务器和浏览器之间的文档传输方式,HTTP是面向文本的应用层协议。HTTP使用了面向连接的TCP作为传输层协议,保证了数据的可靠传输。

HTTP简介

HTTP本身是无连接的,即虽然HTTP使用了TCP连接,但通信的双方在交换HTTP报文之前不需要先建立HTTP连接。
HTTP是无状态的。也就是说,同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问时的相同,因为服务器并不记得曾经访问过的客户,也不记得为该客户提供过多少次服务。HTTP的无状态设计简化了服务器的设计,使服务器更容易支持大量并发的HTTP请求

HTTP请求消息体

请求行:请求方法 URL 协议版本
请求头部:头部字段名 值
请求头部:头部字段名 值

请求数据:请求数据

GET /hello.txt HTTP/1.1
User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
Host: www.example.com
Accept-Language: en, mi

HTTP响应消息体

状态行
消息报头
空行
响应正文

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"
Accept-Ranges: bytes
Content-Length: 51
Vary: Accept-Encoding
Content-Type: text/plain

HTTP请求方法

HTTP请求可以使用多种请求方法。
HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。

方法描述
GET请求指定的页面信息,并返回实体主体
POST向指定资源提交数据处理请求。数据被包含在请求体中。POST请求可能会导致数据修改
HEAD类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头
PUT从客户端向服务器传送的数据取代指定的文档的内容
DELETE请求服务器删除指定的页面
CONNECTHTTP1.1协议中预留给能将连接改为管道方式的代理服务器
TRACE主要用于测试或诊断
PATCH对PUT方法的补充,用来对已知资源进行局部更新

HTTP状态码

HTTP状态码分为5类:

  • 1** :信息,服务器收到请求,需要请求者继续执行操作。
  • 2** :请求成功,操作被成功接收并处理
  • 3** :重定向,需要进一步的操作以完成请求
  • 4** :客户端错误,请求包含语法错误或无法完成请求
  • 5** :服务器错误,服务器在处理请求的过程中发生了错误

常见的状态码:

状态码状态码英文名称中文含义
100Continue继续
101Switching Protocols切换协议。服务器端根据客户端的请求切换协议
200OK请求成功。一般用于GET与POST请求
201Created已创建。成功请求并创建了新的资源
301Moved Permanently永久移动。请求的资源已被永久的移动到新URL,返回的信息包括新的URL。
302Found临时移动。与301类似,但资源只是被临时移动。
305Use Proxy使用代理。请求的资源必须通过代理访问
400Bad Request客户端请求的语法错误,服务器无法理解
403Forbidden服务器理解客户端的请求,但是拒绝执行此请求
404Not Found服务器无法找到资源。可设置“个性页面”处理此错误
500Internal Server Error服务器内部错误,无法完成请求
501Not Implemented服务器不支持请求的功能,无法完成请求
502Bad Gateway作为网关或者代理工作的服务器尝试执行请求时,从远程服务器收到一个无效的响应
505HTTP Version not supported服务器不支持请求的HTTP协议的版本,无法完成处理

参考链接:HTTP状态码

Content-type(内容类型)

Content-Type(内容类型),一般是指网页中存在的 Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,Content-Type 标头告诉客户端实际返回的内容的内容类型。常见的媒体类型如下:

content-type文件类型
text/htmlhtml格式
text/plain纯文本格式
text/xmlXML格式
image/gifgif图片格式
image/pngpng图片格式
application/jsonJSON数据格式
application/pdfpdf格式
multipart/form-data需要在表单中进行文件上传时,就需要使用该格式

HTTP1.0和HTTP1.1的区别

  • HTTP1.0是无连接的:每次客户端和服务端发送请求都要建立新的连接
  • HTTP1.1是长连接 keep-alive:客户端和服务器端的连接保持不断开,避免了每次客户端与服务器请求都要重复建立释放建立TCP连接,提高了网络的利用率
  • HTTP1.1虽然保持连接不断开,但是不允许同时存在两个并行的响应,只允许顺序加载

HTTP1.0和HTTP2.0的区别

  • HTTP2.0采用二进制格式而非文本格式
  • HTTP2.0是完全多路复用的,HTTP1.0加载多个文件时是顺序加载,HTTP2.0可以并行加载
  • HTTP2.0使用报头压缩,降低了开销
  • HTTP2.0支持服务器主动推送

HTTP和HTTPS的区别

HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTPS = HTTP + SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL(Secure Sockets Layer 安全套接层)。

HTTP和HTTPS区别如下:

  • https协议需要到CA( Certificate Authority,电子证书)申请证书,一般免费证书较少,因而需要一定费用。
  • http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议
  • http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
  • http的连接很简单,是无状态的;HTTPS协议是由HTTP + SSL协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

HTTPS连接步骤

  • 客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。
  • Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端
  • 客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级
  • 客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站
  • Web服务器利用自己的私钥解密出会话密钥
  • Web服务器利用会话密钥加密与客户端之间的通信
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值