走进HTTP超文本传输协议

什么是HTTP/HTTPS协议

“简单的HTTP协议 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写。HTTP 协议和 TCP/IP 协议族内的其他众多的协议相同, 用于客户端和服务器之间的通信。请求访问文本或图像等资源的一端称为客户端, 而提供资源响应的一端称为服务器端。”

为什么要学习HTTP/HTTPS协议

我们绝大多数的web应用都是基于HTTP来进行开发的。我们对Web的操作实际上都是通过HTTP协议来进行传输数据的。

明了的说,HTTP协议就是客户端和服务端的一种交互通讯格式。

HTTP的诞生主要是为了文档之间可以相互传阅,所以也可以说HTTP/HTTPS协议也起到了翻译官的作用。


HTTP/HTTPS基础知识

计算机网络协议族(TCP/IP)把网络分成了五层,虽然官方的ISO协议把网络分成了七层,但是我们一般都是大多数用的TCP/IP协议族。它源自与美苏冷战的时候,TCP/IP这里我们不做过多的赘述。

简单的过一眼TCP/IP协议族

特别注意:这里的TCP/IP协议并不是只是说传输层TCP和网络层IP这两个协议,而是说所以协议的总称。就像软件工程1901班并不是说的一个人,而是一个整体。

连通互联网世界,只教给一台电脑做什么是不够的,需要教会一大片机器做什么,这就是网络协议。只有通过网络协议,才能够使得一大片机器互相协作、共同完成一件事。

在这里插入图片描述

可以看到这里一共分成了五层

  • 第0层 (物理层)
  • 第1层 (数据链路层)
  • 第2层 (网络层)
  • 第3层 (传输层)
  • 第4层 (应用层)我们要了解的HTTP协议就是在这一层

到这里可能很多人会不明白,为什么计算机网络中要分层次???
   因为如果两台计算机能够相互通信的话,实际实现起来是非常困难操作的…我们分层的目的就是为了将困难的问题简单化,并且如果我们分层了,我们在使用的时候就可以仅仅关注我们需要关注的层次,而不用理会其他层。


## 使用HTTP网站的简单通信过程   现在的我们已经知道了HTTP是网络中第4层中的一个传输协议,很显然,我们在进行Web网络通信传输出数据的时候,不仅仅会有HTTP协议,还涉及一些其他的协议。
DNS:域名解析协议(域名->IP地址) - 我们访问一个网址的时候,都是用域名来访问的eg(www.baidu.com),,但是计算机读不懂域名,他只认识IP地址,所以我们在搜索引擎属于域名的时候,DNS就会把域名解析(这里也可以说是映射)成IP地址。

HTTP:产生请求报文数据的

  • 当我们的客户端发送请求到服务端的时候,或者说服务端处理数据后给客户端回答的时候,就要产生HTTP保。

在这里插入图片描述

TCP协议:分割HTTP数据,保证数据运输

  • TCP协议采用了三次握手的方式来保证数据的准确运输,在运输的数据的时候,发送标识过去给服务器,服务器也返回标识给客户端,而客户端收到消息后再次返回标识给服务器。这样一来就保证了数据运输是可靠的。说白了就是确保安全用的,看上面的图片也能看出,它是位于传输层的一个协议。

IP协议:传输数据包,找到通信目的地地址。

  • IP协议把我们的产生的数据包发送给对方,IP地址指明了节点被分配的地址,但IP地址可能会变换,我们可以使用ARP协议来将IP地址反射为MAC地址。MAC地址是不会更改的,是网卡所属的固定地址。简单来说,IP地址就像是江苏省无锡市新吴区国家软件园。MAC地址就像是XX座**层**房间**工位。MAC地址在IP地址的前提下,更具体的代表了一个物理位置。

在找到通信目的地之前,我们是需要不断的中转的,这过程我们称作为:“路由中转”,我们并不知道路由中转了多少次的。因此是不能全面了解到互联网中的传输状况的。

接下来就离我们比较远了,属于硬件相关的了,也就是链路层和物理层。这里不做过多的赘述。

使用HTTP客户段与服务端通话

常见的网页提交数据到服务器方式有POST和GET两种,当然不止这两种,还有,put、delete、update、options等。我们这里主要介绍一下这两种以及他们的区别。

GET 和 POST 其实都是 HTTP 的请求方法。除了这 2 个请求方法之外,HTTP 还有 HEAD、PUT、DELETE、TRACE、CONNECT、OPTIONS 这 6 个请求方法。所以HTTP 的请求方法共计有 8 种,它们的描述如下所示:

GET

  • 请求指定的页面信息,并返回实体主体。
  • 相对POST来说比较不安全,请求参数外露在URL
  • 相对POST来说参数会有一些限制,一般浏览器会对URL的长度进行限制默认市2048

POST

  • 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
  • 相对GET请求会比较安全,请求参数不外露,相对GET安全,不过也可以通过网上的相应抓包教程获取数据
  • 一般来说POST请求市没有限制的,但是例如Tomcat服务器默认限制2M,就像Tomcat也可以通过修改conf->servers.xml修改里面的Connector的maxPostSize属性设置成0(这里的0代表无限大) 这个标签下面的都是tomcat连接器(catalina)的相应设置。

继续了解请点击菜鸟教程

HTTP常见的状态码以及状态码意思(重点)

HTTP 状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型。响应分为五类:信息响应(100–199),成功响应(200–299),重定向(300–399),客户端错误(400–499)和服务器错误 (500–599):

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

表格数据来源
在这里插入图片描述

文章转自:
在这里插入图片描述
原文所在:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值