HTTP和HTTPS笔记

HTTP简介

HTTP是超文本传输协议,是从万维网服务器传输超文本到本地浏览器的传送协议,基于TCP/IP通信协议来传递数据

HTTP工作原理

默认端口号为80,工作于客户端-服务器架构上,浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求

HTTP三点注意事项

  1. HTTP是无连接的,限制每次连接只处理一个请求,可以节省传输时间
  2. HTTP是媒体独立的,只要客户端和服务器知道如何处理数据内容,任何类型数据都可以通过HTTP发送
  3. HTTP是无状态的,HTTP是无状态协议,指协议对事务处理没有记忆能力,缺少状态意为如果后续处理需要前面信息,必须要重传

HTTP消息结构

  1. 一个HTTP客户端是一个应用程序(Web浏览器或其他任何客户端),通过连接到服务器达到向服务器传输一个或多个HTTP请求
  2. 一个HTTP服务器同样也是一个应用程序(web服务如Apache Web服务器或IIS服务器等),通过接受客户端请求并向客户端发送HTTP响应数据
  3. HTTP使用统一资源标识符URL来传输数据和建立连接

HTTP请求格式

  1. 请求行(请求方法 URL 协议版本)
  2. 请求头部(头部字段名 值)
  3. 空行
  4. 请求数据

HTTP响应格式

  1. 状态行
  2. 消息报头
  3. 空行
  4. 响应正文

HTTP8种请求方法

  1. GET 请求指定页面信息,返回实体主体
  2. HEAD 类似于get请求,只不过返回的响应中没有具体内容,用于获得报头
  3. POST 向指定资源提交数据进行处理请求(上传文件,提交表单)。数据被包含在请求体中,可能会导致新的资源的建立和/或已有资源修改
  4. PUT 从客户端向服务器传送的数据取代指定的文档内容

PUT请求:如果两个请求相同,后一个请求会覆盖第一个请求,常用来改资源 POST请求:后一个请求不会把第一个请求覆盖,常用来增资源

  1. DELETE 请求服务器删除指定页面
  2. CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器
  3. OPTIONS 允许客户端查看服务器性能
  4. TRACE 回显服务器收到的请求,主要用于测试或诊断

HTTP状态码分类

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

常见状态码

  1. 200 OK 请求成功,一般用于GET,POST
  2. 201 Created 已创建,成功请求并创建新的资源,且其URI已经随Location 头信息返回。
  3. 202 Accepted 已接受,已接受请求,但处理未完成
  4. 301 Moved Permanently 永久移动,请求的资源被永久移动到新的URL,返回信息包括新的URL,浏览器会自动定向到新的URL,今后的新请求都应使用新的URL代替
  5. 302 Found 临时移动,和301类似,但资源只是临时被移动,客户端应使用原来的URL
  6. 401 Unauthorized 请求要求用户的身份验证,对于需要登录的网页,服务器可能返回此响应
  7. 403 Forbidden 服务器理解客户端的请求,但是拒绝执行此请求
  8. 404 Not Found 服务器无法根据客户端的请求找到资源
  9. 500 Internal Server Error 服务器内部错误,无法完成请求
  10. 502 Bad Gateway 作为网关或代理工作的服务器尝试执行请求时,从远程服务器收到一个无效的响应

HTTPS简介

超文本传输安全协议,是一种透过计算机网络进行安全通信的传输协议,HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包,默认端口是443

HTTP和HTTPS的区别

  1. HTTP明文传输,数据未加密,安全性较差,HTTPS(SSL+HTTP)数据传输过程是加密的,安全性较好
  2. 使用HTTPS协议需要用到CA(数字证书认证机构)申请证书,一般免费证书较少,需要一定费用购买
  3. HTTP页面响应速度比HTTPS快,主要是因为HTTP使用TCP三次握手建立连接,客户端和服务器需要交换3个包,而HTTPS除了TCP的三个包,还要加上SSL握手的九个包,因此一共是12个包
  4. HTTP和HTTPS使用完全不同的连接方式,用的端口也不同,一个是80,一个是443
  5. HTTPS其实就是建构在SSL/TLS之上的HTTP协议,所以HTTPS更耗费服务器资源

TCP三次握手

  1. 服务器端被动打开建立TCB(传输控制块),客户端主动打开建立TCB,建立连接时,客户端发送请求报文到服务器,等到服务器确认。此时TCP客户端进程进入同步已发送状态

  2. TCP服务器接收到请求报文后,如果同意连接,则发出确认报文,此时TCP服务器进程进入同步收到状态

  3. TCP客户进程收到确认后,还要向服务器发送确认报文,此时TCP连接简历,客户端进入已建立连接状态。服务器收到客户端的确认后也进入已建立连接状态,此后双方可以开始通信了

TCP四次挥手

  1. 客户端主动关闭,服务器端被动关闭。客户端进程发出连接释放报文,停止发送数据
  2. 服务器收到连接释放报文,发出确认报文,此时仍可以往客户端发送数据
  3. 等服务器将最后数据发送完毕后,发送连接释放报文
  4. 客户端收到连接释放报文后,发出确认报文
  5. 服务器端收到确认报文后,立即撤销TCB,关闭连接
  6. 客户端发出确认报文后,需要等待2*MSL(最长报文段寿命),才撤销TCB,关闭连接

猜你喜欢

转载自www.cnblogs.com/Gzzzh/p/10526284.html