Http --> 超文本传输协议

什么是Http

超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)。我们称这个客户端为用户代理程序(user agent)。应答的服务器上存储着一些资源,比如HTML文件和图像。我们称这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在多个“中间层”,比如代理服务器、网关或者隧道(tunnel)。

  • 文本:html、字符串....
  • 超文本:文件、图片、位置、视频、音乐、地图....
  • 默认端口:80

Https:安全的

Https(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL 。 

默认端口:443 

  • 特征
  1. 支持客户/服务器模式;
  2. 简单快速;
  3. 灵活;
  4. 无连接;
  5. 无状态
  • 工作原理
  1. 客户端连接到Web服务器(一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接)。
  2. 发送HTTP请求(通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成)。
  3. 服务器接受请求并返回HTTP响应(Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成)。
  4. 释放连接TCP连接(若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求)。
  • 网络传输过程

 Http版本时代

  • Http/1.0 

客户端与web服务器连接后,只能获取一个web资源,然后断开连接。

  • Http/1.1

 客户端与web服务器连接后,可以获得多个web资源。

Http三次握手

  • 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认。
  • 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。
  • 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 完成三次握手,客户端与服务器开始传送数据。 

Http请求(Request) 

  • 客户端 ——> 发请求(request) ——> 服务器 
  1. 请求行:包含请求方法、URI、HTTP版本信息
  2. 请求头部(headers)字段
  3. 请求内容实体(body) 

eg:www.baidu.com 

Request URL: https://www.baidu.com/   请求地址
Request Method: GET    get/post方法
Status Code: 200 OK    状态码:200
Remote Address: 36.152.44.96:443  远程地址

Accept: text/html 
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cache-Control: max-age=0
Connection: keep-alive

1、请求行

  • 请求行中的请求方式:Get
  • 请求方式:Get、Post、HEAD、DELETE、PUT 

   --  Get

请求能够携带的参数比较少,有大小限制(1024字节),会在浏览器的URL地址栏中显示数据内容,不安全,但高效。

向指定的资源发出“显示”请求。使用GET方法应该只用在读取数据,而不应当被用于产生“副作用”的操作中,例如在Web Application中。其中一个原因是GET可能会被网络蜘蛛等随意访问。

   --  Post

请求能够携带的参数比较多,没有大小限制,不会在浏览器的URL地址栏中显示数据内容,安全,但不高效。

向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求本文中。这个请求可能会创建新的资源或修改现有资源,或二者皆有。

--  PUT

向指定资源位置上传其最新内容。

--  DELETE

请求服务器删除Request-URI所标识的资源。

--  HEAD

类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头。

-- CONNECT

HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

--  OPTIONS

允许客户端查看服务器的性能。

--  TRACE

回显服务器收到的请求,主要用于测试或诊断。

2、消息头

Accept: text/html  告诉浏览器,它所支持的数据类型
Accept-Encoding: gzip, deflate, br   支持哪种编码格式
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8  告诉浏览器,它的语言环境
Cache-Control: max-age=0  缓存控制
Connection: keep-alive   告诉浏览器,请求完成是断开还是保持连接
hots: xx  主机

Http响应(Response)

  •  服务器 ——>  响应(response) ——>  客户端
  1. 状态行:包含HTTP版本、状态码、状态码的原因短语
  2. 响应头部(headers)字段
  3. 响应内容(body)实体 

eg:www.baidu.com  

Cache-Control: private   缓存控制
Connection: keep-alive   连接
Content-Encoding: gzip   编码
Content-Type: text/html;charset=utf-8   类型

Accept: text/html 
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cache-Control: max-age=0
Connection: keep-alive

1、响应体

Accept: text/html  告诉浏览器,它所支持的数据类型
Accept-Encoding: gzip, deflate, br   支持哪种编码格式
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8  告诉浏览器,它的语言环境
Cache-Control: max-age=0  缓存控制
Connection: keep-alive   告诉浏览器,请求完成是断开还是保持连接
Hots: xx  主机
Refrush:  告诉客户端,多久刷新一次
Location: 让网页重新定位

2、响应状态码

200:请求响应成功

3xx:请求重定向

  • 重定向:你重新到我给你的新位置去
  • 302:表示重定向,这种情况下,服务器返回的头部信息中会包含一个 Location 字段,内容是重定向到的url

4xx:找不到资源,资源不存在

  • 400:客户端请求有语法错误,不能被服务器所解析
  • 401:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
  • 403:服务器收到请求,但是拒绝提供服务
  • 404:请求资源找不到

5xx:服务器代码错误 

  • 500:服务器发生不可以预期的错误
  • 503:服务器当前不能处理客户端的请求,一段时间后可能恢复正常
  • 502:网关错误
  • 504:(网关超时)bai 服务器作为网关或代理,但是没有及时du从上游zhi服务器收到请求
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦想天涯~路在脚下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值