HTTP基础知识整理

本文详细介绍了HTTP的基础知识,包括HTTP的特性、URI与URL的区别、HTTP请求与响应报文的结构,以及HTTP状态码和首部字段。特别强调了HTTP方法如GET、POST、PUT等,状态码200、404和500的含义,以及HTTP/1.1中通用首部字段如Cache-Control、Connection的作用。此外,还涵盖了HTTPS的使用、安全性问题和身份认证方式。
摘要由CSDN通过智能技术生成

个人整理。主要来自《图解HTTP》以及百度百科、csdn博客等。

HTTP基础知识

1 HTTP简介

1.1 什么是HTTP

当用户在网页浏览器(Web browser)的地址栏输入URL时,Web浏览器需要从Web服务器端获取文件资源等信息,从而显示出Web页面。为了完成从客户端到服务器端的通信,Web使用了HTTP(HyperText Transfer Protocol,超文本传输协议)。

1.2 HTTP的特点

HTTP具有以下特点:

  • HTTP属于应用层协议,在传输层使用TCP,在网络层使用IP。此外,在通信过程中还会用到DNS(解析域名)与ARP(获取MAC地址)等。
  • 使用HTTP时,必定是一端担任客户端,另一端担任服务器端。即便实际情况下可能两端都既是服务器端,也是客户端,但仅就一条通信线路而言,客户端与服务器端是确定的。HTTP能够明确区分哪边是客户端,哪边是服务器端。
  • HTTP请求必然是由客户端发出,而服务器端回复响应。服务器端在没有接收到请求之前不会发送响应。
  • HTTP一种无状态协议,即HTTP自身不对请求和响应之间的通信状态进行保存。每当有新的请求发送时,就会有对应的新响应产生。
  • 如果服务器端需要管理客户端状态,可以使用Cookie技术。Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态。
  • HTTP的初始版本中,每进行一次HTTP通信就要连接和断开一次TCP连接。后引入了持久连接(Persistent Connections,也称为HTTP keep-alive或HTTP connection reuse)方法,能实现只要任意一端没有明确提出断开连接,则保持TCP连接状态。

1.3 URI与URL

URI全称为Uniform Resource Identifier,统一资源标识符,作用是标识某一互联网资源。
URL全称为Uniform Resource Locator,统一资源定位符,用于表示资源的地点。
URI与URL的联系是它们都能够唯一地确定一个资源,区别是URL是通过资源的地点来确定资源的,而URI除了通过资源的地点,还能用其他字符串句法格式来确定资源。因此,可以说URL是URI的子集。
绝对URI格式:协议方案名://[登录信息@]服务器地址:端口号/带层次的文件路径[?查询字符串][#片段标识符]

1.4 HTTP请求报文

HTTP请求报文由请求方法、请求URI、协议版本、可选的请求首部字段和内容实体构成。其中请求方法、请求URI、协议版本组成请求行。

1.5 HTTP响应报文

HTTP响应报文由协议版本、状态码、原因短语、可选的响应首部字段以及内容实体构成。其中协议版本、状态码、原因短语组成响应行。

2 HTTP/1.1中可用的方法

方法用于将客户端的请求告知服务器端。

2.1 GET:获取资源

GET方法用来请求访问已被URI识别的资源,指定的资源经服务器端解析后返回响应内容。

2.2 POST:传输实体主体

POST方法用来传输实体的主体。

2.3 PUT:传输文件

PUT方法用来传输文件。需要在请求报文的主体中包含文件内容,然后保存到请求URI指定的位置。

2.4 HEAD:获取报文首部

HEAD方法与GET方法一样,只是不返回报文主体部分。一般用于确认URI的有效性及资源更新的日期时间等。

2.5 DELETE:删除文件

DELETE方法用于按请求URI删除指定的资源。

2.6 OPTIONS:询问支持的方法

OPTIONS用法用来查询针对请求URI指定的资源(也可用*代替,表示任意资源)支持的方法。

2.7 TRACE:追踪路径

TRACE方法用于让Web服务器将之前的请求通信返回给客户端。发送请求时,需要在Max-Forwards首部字段中填入数值,每经过一个服务器端就将该数字减一。当数值归零时停止传输,并由最后接收到请求的服务器端返回状态码200 OK的响应。

2.8 CONNECT:要求用隧道协议连接代理

CONNECT方法要求在于代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。

3 HTTP状态码

状态码用于当客户端向服务器端发出请求时,描述请求的处理结果。

3.1 1XX:正在处理

1XX的响应结果表示接收的请求正在处理。

3.2 2XX:成功

2XX的响应结果表明请求被正常处理了。

3.2.1 200 OK

表示从客户端发来的请求被服务器正常处理了,在响应报文内会根据请求类型返回相应的信息,如GET方法返回对应资源实体,HEAD方法返回首部等。

3.2.2 204 No Content

表示服务器成功处理了请求,但返回的报文中不含实体的主体部分。一般在只需要从客户端向服务器发送信息,而不需要向客户端发送信息时使用。

3.2.3 206 Partial Content

表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求。响应报文中包含由Content-Range指定范围的实体内容。

3.3 3XX重定向

3XX的响应结果表示浏览器应当执行一些特殊处理以正确访问资源。

3.3.1 301 Moved Permanently

永久性重定向,表示请求的资源已被分配了新的URI,以后应使用资源现在所指的URI。

3.3.2 302 Found

临时性重定向,表示请求的资源已被分配的新的URI,希望用户本次能使用新的URI访问。

3.3.3 303 See Other

表示对应当前请求的响应可以在另一个 URI 上被找到,而且客户端应当采用 GET 的方式访问那个资源。

3.3.4 304 Not Modified

如果客户端发送了一个带条件的 GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个状态码。

3.3.5 307 Temporary Redirect

请求的资源临时从不同的URI 响应请求。新的临时性的URI 应当在响应的 Location 域中返回。除非这是一个HEAD 请求,否则响应的实体中应当包含指向新的URI 的超链接及简短说明。因为部分浏览器不能识别307响应,因此需要添加上述必要信息以便用户能够理解并向新的 URI 发出访问请求。

3.4 4XX客户端错误

4XX的响应结果表明客户端的请求发生错误。

3.4.1 400 Bad Request

该状态码表示请求报文中存在语法错误。当错误发生时,需修改请求的内容后再次发送请求。

3.4.2 401 Unauthorized

当前请求需要用户验证。该响应必须包含一个适用于被请求资源的 WWW-Authenticate 信息头用以询问用户信息。如果当前请求已经包含了 Authorization 证书,那么401响应代表着服务器验证已经拒绝了那些证书。如果401响应包含了与前一个响应相同的身份验证询问,且浏览器已经至少尝试了一次验证,那么浏览器应当向用户展示响应中包含的实体信息,因为这个实体信息中可能包含了相关诊断信息。

3.4.3 403 Forbidden

表示对请求资源的访问被服务器拒绝了。

3.4.4 404 Not Found

表示服务器上无法找到请求的资源,也可以用于拒绝请求而不想说明理由。

3.5 5XX

5XX的响应结果表明服务器本身发生错误。

3.5.1 500 Internal Server Error

表明服务器端在执行请求时发生了错误,也可能是Web应用存在bug或某些临时故障。

3.5.2 503 Service Unavailable

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

4 HTTP首部

4.1 HTTP首部简介

HTTP首部字段是构成HTTP报文的要素之一。在客户端与服务器使用HTTP通信的过程中,无论是请求还是相应都会用到首部字段,它能起到传递额外

好的,以下是计算机网络基础知识整理大全: 1. 计算机网络是什么? 计算机网络是指利用通信设备和通信线路互联起来的一组计算机系统,以实现信息交换和资源共享的系统。 2. 计算机网络的分类 按照地理位置分为:局域网(LAN)、城域网(MAN)、广域网(WAN)等。 按照网络拓扑结构分为:总线型、星型、环型、树型、网状型等。 按照传输介质分为:有线网络和无线网络。 3. OSI七层模型 计算机网络的通信过程被分为七层,即OSI七层模型,分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 4. TCP/IP四层模型 TCP/IP四层模型包括网络接口层(对应OSI模型的物理层和数据链路层)、互联网层(对应OSI模型的网络层)、传输层和应用层。 5. IP地址和子网掩码 IP地址是指互联网协议地址,用于识别互联网上的计算机。子网掩码则是用于划分网络地址和主机地址的掩码。 6. 路由器和交换机 路由器是一种网络设备,能够实现不同网络之间的互联,同时还能够进行路由选择。交换机则是一种数据通信设备,主要用于实现局域网内的通信和数据交换。 7. DNS DNS是域名系统的缩写,用于将域名解析为IP地址,以便计算机之间进行通信。用户在输入网址时,浏览器会自动向DNS服务器发送域名查询请求。 8. HTTPHTTPS HTTP是超文本传输协议的缩写,用于在Web浏览器和Web服务器之间传递信息。HTTPS是安全套接字层超文本传输协议,是在HTTP协议上加入SSL/TLS协议而实现的安全通信协议。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值