【WEB基础】HTTP协议学习

做WEB方向,首先就要对WEB基础有了解和学习。


  • CS架构: cilent 和 server, 客户端+服务器。
  • BS架构: brower 和 server, 浏览器+服务器

web是基于BS的开发,数据传输在 浏览器 和 服务器之间。

既然包括到数据的传输,就会有一种相对统一的协议约束数据传输的规范。

HTTP协议

根据百度百科的相关资料

HTTP是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII码形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使得开发和部署是那么的直截了当


为了吃透(起码完整了解)HTTP,我们去了解(简单看一下)一下TCP协议

传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793 定义。
TCP旨在适应支持多网络应用的分层协议层次结构。 连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。 原则上,TCP应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。

功能(ok,没看懂,应该问题不大)

  • 在数据正确性与合法性上,TCP用一个校验和函数来检验数据是否有错误,在发送和接收时都要计算校验和;同时可以使用md5认证对数据进行加密。
  • 在保证可靠性上,采用超时重传和捎带确认机制。
  • 在流量控制上,采用滑动窗口协议,协议中规定,对于窗口内未经确认的分组需要重传。

工作方式

  • 建立连接 三次握手
  • 终止连接 四次握手

简单看一下,没有细看,看不懂


HTTP超文本传输协议

当http在ssl协议基础上,就变成了我们常说的 https
http默认端口 80 , 而https默认端口 443

浏览网页是HTTP的主要应用,但是这并不代表HTTP就只能应用于网页的浏览。HTTP是一种协议,只要通信的双方都遵守这个协议,HTTP就能有用武之地。比如咱们常用的QQ,迅雷这些软件,都会使用HTTP协议(还包括其他的协议)。

http主要有 1.0 1.1 2.0三个版本,目前使用较为广泛的 应该 是1.1版本

HTTP工作原理

HTTP是基于客户/服务器模式,且面向连接的。

HTTP工作原理简要如下:

  1. 客户与服务器建立连接;
  2. 客户向服务器提出请求;
  3. 服务器接受请求,并根据请求返回相应的文件作为应答;
  4. 客户与服务器关闭连接。

HTTP的工作原理,决定了它只能等待 客户端 给 服务端发送请求,而不能 主动 给 客户端发送请求。

HTTP连接是一次性的连接,每次连接处理一个请求,保证了服务端和多个客户端通信的执行效率

HTTP协议是无状态协议,即服务端不会保存客户端传来的请求的任何信息。减轻服务端的负担,保证通信的执行效率。

请求信息

一个HTTP请求报文由请求行(request line)、请求头(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式

请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。例如,GET /index.html HTTP/1.1。

请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息,典型的请求头有:

  • User-Agent:产生请求的浏览器类型。
  • Accept:客户端可识别的内容类型列表。
  • Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机。

最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头

请求数据不在GET方法中使用,而是在POST方法中使用。POST方法适用于需要客户填写表单的场合。与请求数据相关的最常使用的请求头是Content-Type和Content-Length。

响应信息

HTTP响应也由三个部分组成,分别是:状态行、响应头、空行、响应正文。
正如你所见,在响应中唯一真正的区别在于第一行中用状态信息代替了请求信息。状态行(status line)通过提供一个状态码来说明所请求的资源情况。

HTTP-Version Status-Code Reason-Phrase CRLF
如 HTTP/1.1 200 OK

响应头,用来说明客户端要使用的一些附加信息
空行,消息报头后面的空行是必须的
响应正文
如 {“resultCode”:1,“resultMsg”:“手机号未注册”}


有HTTP协议的一些知识,在处理web中的响应和请求的时候,会方便很多。


工欲善其事,必先利其器


欢迎指正错误

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值