HTTP协议

2021/5/15 10:55:45

本文主要是介绍HTTP协议,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

 

认识HTTP协议

协议是什么

现学的协议有哪些,分别动作在那一层【重要】

http的请求方式

GET和POST的区别【重要】

常见的http请求状态码和代表的含义?

OSI七层模型和TCP/IP四层模型【重要】

HTTP协议的特点【重要】

B/S与C/S架构的区别,优缺点是什么?【重要】

Cookie和Session的含义和区别?

简述建立连接三次握手和断开连接四次挥手的过程?【重要】

三次握手

 

四次挥手

TCP和UDP的区别【重要】

http和https区别?

HTTP请求报文与响应报文有什么区别?【重要】

HTML

HTTP1.0和HTTP1.1区别?

访问百度的过程【重要】

如何判断网络是连通的?

URL是由什么组成的?(https://www.baidu.com/)


认识HTTP协议

协议是什么

  1. HTTP协议是超文本传输协议,也就是 HyperText Transfer Protocol。
    2、HTTP是一个用在计算机世界里的协议。它使用计算机能够理解的语言确立了一种计算机之间交流通信的规范,以及相关的各种控制和错误处理方式。(协议)
    3、HTTP是一个在计算机世界里专门用来两点之间传输数据的约定和规范 (传输)

总结:
HTTP是一个在计算机世界两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。 (这里的两点指:1、服务器和服务器之间 2、浏览器和服务器之间)通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。

现学的协议有哪些,分别动作在那一层【重要】

HTTP:超文本传输协议,工作在应用层

端口:运输层服务访问点(TSAP) ;让应用层的各种应用进程都能将其数据通过端口向下交付给运输层,以及让运输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程。工作在传输层。

TCP:传输控制协议,工作在传输层

IP:工作在网络层

ARP:地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。工作在网络层

Arp -a 获取到的最近一段时间内使用过的IP地址与MAC地址的对应关系。

arp -d 删除所有最近一段时间内使用过的IP及对应MAC地址

DNS:域名系统,使IP地址和域名相互映射的一个分布式数据库

      DNS协议是用来将域名转换成IP地址,也可以将IP地址转换成域名地址。

DHCP:(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。

 

http的请求方式

GET、POST、HEAD、DELETE、TARCE、CONNET、OPTIONS、PUT

常用的有:GET、POST

 

GET和POST的区别【重要】

1、get比post速度块

2、get有缓存,post没有

3、get的url参数可见,post不可见

4、get请求参数会保留历史记录,post中参数不会保留

5、get请求数据放在url,post数据在http包体(requrest body)内

6、get只接受ASCII字符的参数数据类型,post没有限制

7、get会被浏览器主动catch,post不会,需要手动设置

8、get在浏览器回退时无害,post会再次提交请求

9、get体积小(url字节长度每个浏览器不一样),post可以无限大(根据php.ini 配置文件设定)

 

常见的http请求状态码和代表的含义?

200:表明客户端发来的请求在服务器端被正常处理了;

304:未修改,自从上次请求后,请求的网页未修改过,服务器返回次响应时,不会返回网页内容

403:表明对资源的访问被服务器拒绝了,一般出现在访问权限上;

404:表明服务器上无法找到请求的资源,也可以在服务器端拒绝请求且不想说明原因时使用;

500:表明服务器端在执行请求时发生错误,也可能是应用程序存在Bug或某些临时的故障;

503:表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。

总结:

1XX:指示信息-表示请求已接收,继续处理;

2XX:成功-表示请求已被成功接收、理解、接受;

3XX:重定向-要完成请求必须进行更进一步的操作;

4XX:客户端错误-请求有语法错误或请求无法实现;

5XX:服务器端错误-服务器端未能实现合法的请求。

 

OSI七层模型和TCP/IP四层模型【重要】

应用层,表示层,会话层,传输层,网络层,数据链路层,物理层

应用层,传输层,网络层,数据链路层

 

HTTP协议的特点【重要】

  1. 支持客户/服务器模式
  2. 简单快速
  3. 灵活
  4. 无连接
  5. 无状态

 

B/S与C/S架构的区别,优缺点是什么?【重要】

B/S架构:浏览器/服务端模型;C/S架构:客户端/服务器模型 ;

1、硬件环境不同:

C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务.  B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备. 信息自己管理. 有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行

2、对安全要求不同 :

C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强. 一般高度机密的信息系统采用C/S 结构适宜. 可以通过B/S发布部分可公开信息.  

B/S 建立在广域网之上, 对安全的控制能力相对弱, 面向是不可知的用户群.   

3、对程序架构不同: 

C/S 程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑.  

B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上. 比C/S有更高的要求 B/S结构的程序架构是发展的趋势, 从MS的.Net系列的BizTalk 2000 Exchange 2000等, 全面支持网络的构件搭建的系统. SUN 和IBM推的JavaBean 构件技术等,使 B/S更加成熟.  

4、软件重用不同:

C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好.  

B/S 对的多重结构,要求构件相对独立的功能. 能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子

5、系统维护不同 :

系统维护是软件生存周期中,开销大, C/S 程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级. 升级难. 可能是再做一个全新的系统  

B/S 构件组成,方面构件个别的更换,实现系统的无缝升级. 系统维护开销减到最小.用户从网上自己下载安装就可以实现升级. 

6、用户接口不同  

C/S 多是建立的Window平台上,表现方法有限,对程序员普遍要求较高  

B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流. 并且大部分难度减低,减低开发成本. 

 

Cookie和Session的含义和区别?

Cookie和Session都是用来跟踪浏览器的用户身份; Cookie数据保存在客户端,Session数据保存在服务器端,Session比cookie更安全;Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。

 

简述建立连接三次握手和断开连接四次挥手的过程?【重要】

三次握手

客户端        服务端
    SYN seq=x -->
  <-- ACK=1 ack=x+1  SYN seq=y
    ACK=1 ack=y+1 -->

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕, 客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

 

四次挥手


客户端        服务端
    FIN seq=u -->
  <-- ACK=1 ack=u+1
    服务器接着发没发完的数据
   <-- FIN=1 seq=v
    ACK=1 ack=v+1 -->
客户端等待一段时间

1)客户端进程发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号加1),此时,客户端进入FIN-WAIT-1(终止等待1)状态。 TCP规定,FIN报文段即使不携带数据,也要消耗一个序号。

2)服务器收到连接释放报文,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v,此时,服务端就进入了CLOSE-WAIT(关闭等待)状态。TCP服务器通知高层的应用进程,客户端向服务器的方向就释放了,这时候处于半关闭状态,即客户端已经没有数据要发送了,但是服务器若发送数据,客户端依然要接受。这个状态还要持续一段时间,也就是整个CLOSE-WAIT状态持续的时间。

3)客户端收到服务器的确认请求后,此时,客户端就进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文(在这之前还需要接受服务器发送的最后的数据)。服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,FIN=1,ack=u+1,由于在半关闭状态,服务器很可能又发送了一些数据,假定此时的序列号为seq=w,此时,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。

4)客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态。注意此时TCP连接还没有释放,必须经过2∗∗MSL(最长报文段寿命)的时间后,才进入CLOSED状态。服务器只要收到了客户端发出的确认,立即进入CLOSED状态,就结束了这次的TCP连接。可以看到,服务器结束TCP连接的时间要比客户端早一些。

 

TCP和UDP的区别【重要】

1、TCP是面向连接的(在客户端和服务器之间传输数据之前要先建立连接),UDP是无连接的(发送数据之前不需要先建立连接)

2、TCP提供可靠的服务(通过TCP传输的数据。无差错,不丢失,不重复,且按序到达);UDP提供面向事务的简单的不可靠的传输。 

3、UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性比较高的通讯或广播通信。随着网速的提高,UDP使用越来越多。

4、每一条TCP连接只能是点到点的,UDP支持一对一,一对多和多对多的交互通信。 

5、TCP对系统资源要去比较多,UDP对系统资源要求比较少

6、UDP程序结构更加简单

7、TCP是流模式,UDP是数据报模式 

 

http和https区别?

http默认端口是80 ,https是443 ;https安全性要比http高。

 

HTTP请求报文与响应报文有什么区别?【重要】

请求报文包含三部分:
a、请求行:包含请求方法、路径、HTTP版本信息;
b、请求头(headers)字段;
c、请求内容实体(body);
响应报文包含三部分:
a、状态行:包含HTTP版本、状态码、状态码的原因短语;
b、响应头(headers)字段;
c、响应内容(body)实体。

 

HTML

HTML是HTTP协议传输的主要内容之一,它描述了超文本页面,用各种“标签”定义文字、图片等资源和排版布局,最终由浏览器“渲染”出可视化页面。

 

HTTP1.0和HTTP1.1区别?

在http1.0协议中,客户端与web服务器建立连接后,只能获得一个web资源;http1.1协议,允许客户端与web服务器建立连接后,在一个连接上获取多个web资源。

 

访问百度的过程【重要】

客户端--->网络--> 打开浏览器  输入域名  --> 发送给服务器---->接受,将域名通过DNS 转换为IP地址;再次响应传送给客户端 展现页面完成响应。

如何判断网络是连通的?

(1).ping本地IP地址; (2).判断网卡是否连接有效网线; (3).ping网卡IP;(4).ping网关;(5).ping互联网。

URL是由什么组成的?(https://www.baidu.com/)

协议

域名、IP

端口

虚拟目录

请求文件

请求参数

 

 



这篇关于HTTP协议的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程