HTTP的了解

HTTP是互联网上应用最广泛的一种网络协议,本文详细介绍了其工作流程,包括用户输入URL后浏览器如何发送请求及服务器响应的过程。HTTP报文分为请求报文和响应报文,包含方法(GET、POST、PUT、DELETE等)、状态码(200、404等)以及Header字段的作用。同时,文章还探讨了RESTful设计原则,强调正确使用HTTP方法和状态码的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HTTP 的了解

HTTP

Hypertext Transfer Protocol(超文本传输协议),和 HTML(Hypertext Markup Language 超文本标记语言)一起诞生,用于在网络上请求和传输 HTML 内容。


HTTP 工作方式

用户输入地址后回车,游览器拼装 HTTP 报文并发送给请求服务器,服务器处理请求后发送响应报文给浏览器,浏览器解析响应报文并使用渲染引擎显示到界面上。


URL 格式

协议类型、服务器地址(和端口号)、路径(Path)

http://www.baidu.com/xxx

HTTP 报文格式

请求报文

请求行:method 和 path 以及 Http version
			 GET /xxx HTTP/1.1
			 
Headers:key/vaule格式
				Host: www.baidu.com
				Content-Type: text/plain
				Content-Length: 345
				
Body:报文内容
			xxxxxxxxxxxx

响应报文

状态行:Http version 和 status code 以及 status message
		   HTTP/1.1 200 OK
			
Headers:key/value格式
				Content-Type: application/json; charset=utf-8
				Cache-control: public, max-age=60, s-maxage=60
				vary: Accept,Accept-Encoding
				content-encoding: gzip
				
Body:	报文内容
			xxxxxxxxx

HTTP 请求方法

GET

  1. 用于获取资源
  2. 对服务器数据不进行修改
  3. 不发送 Body

POST

  1. 用于增加或修改资源
  2. 发送给服务器的内容在 Body 中

PUT

  1. 用于修改资源
  2. 发送给服务器的内容在 Body 中

DELETE

  1. 用于删除资源
  2. 不发送 Body

HEAD

  1. 和 GET 使用方式完全相同
  2. 和 GET 区别在于,返回的响应中没有 Body

状态码(Status Code)

用于对响应结果做出类型化的描述

  • 1xx:临时性消息。100(继续发送)、101(正在切换协议)

  • 2xx:成功。200(OK)、201(创建成功)

  • 3xx:重定向。301(永久移动)、302(暂时移动)、304(内容未改变)

  • 4xx:客户端错误。400(客户端请求错误)、401(认证失败)、403(被禁止)、404(找不到内容)

  • 5xx:服务器错误。500(服务器内部错误)、501(不支持请求的功能)、502(无效网关)、503(服务不可用)

Header

HTTP 消息的原数据(metadata)

Host

目标主机,不是在网络上用于寻址的,而是在目标服务器上用于定位子服务器的。

Content-Type

指定 Body 的类型,主要有四种类型

  1. text/html,请求返回的是 html 文本
  2. x-www-form-urlencoded,纯文本表单的提交方式
  3. multipart/form-data,表单含有二进制文件的提交方式
  4. application/json,image/jpeg,单项内容

Content-Length

指定 Body 的长度(字节)


Location

指定重定向的目标URL


User-Agent

用户代理,即实际是谁发送请求,接受响应的


Range/Accept-Range

按范围接收数据,用于断点续传,多线程下载。

Accept-Range: bytes 响应报文中出现,表示服务器支持按字节来取范围数据。

Range: bytes=start-end 请求报文中出现,表示要取哪段数据。

Content-Range: start-end/total 响应报文中出现,表示发送的是哪段数据。


其他Header

  • Accept: 客户端能接受的数据类型,如 text/html
  • Accept-Charset: 客户端接收的字符集,如 utf-8
  • Accept-Encoding: 客户端接收的压缩编码类型,如 gzip
  • Content-Encoding: 压缩类型,如 gzip

REST

REST HTTP 即正确的使用 HTTP

  • 使⽤资源的格式来定义 URL
  • 规范地使⽤ method 来定义⽹络请求操作
  • 规范地使⽤ status code 来表示响应状态
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值