HTTP协议

HTTP是互联网上应用最广泛的网络传输协议,基于TCP/IP通信,无连接且媒体独立。它定义了客户端和服务器之间的交互方式,包括请求方法如GET、POST、PUT等,以及响应头信息和状态码。URL是HTTP中用于定位资源的重要组成部分,而Content-Type定义了数据内容的类型。

简介

HTTP协议即超文本传输协议(Hyper Text Transfer Protocol,HTTP)是因特网上应用最广泛的一种网络传输协议,HTTP是一个基于TCP/IP通信协议来传递数据。

HTTP是无连接的,即限制每次连接只处理一个请求,服务器处理完客户的请求,并受到客户的应答之后,即断开连接。

HTTP是媒体独立的,即只有客户端和服务器知道如何处理数据内容,任何类型的数据都可以通过HTTP发送,客户端和服务器只需要指定MIMIE-type内容类型。

HTTP是无状态的,HTTP协议对事务处理没有记忆能力,如果想要在每一次连接后进行处理,那么需要进行重传。

URL

http使用统一资源标识符(Uniform Resource Identifiers,URI)来建立连接和传输资源。url是一种特殊URI。url即统一资源定位符,一个url通常由协议、域名、端口、路径和URL地址参数。URL的一般格式如下:

protocol :// hostname[:port] / path / [;parameters][?query]#fragment

常用的protocol(协议)有:http协议、file(本地计算机上的文件)、ftp协议、https协议

hostname(主机名): 是指存放资源的服务器的域名系统(DNS) 主机名或 IP 地址。有时,在主机名前也可以包含连接到服务器所需的用户名和密码(格式:username:password@hostname)。

port: 端口号,可以自己指定也可以使用默认的

path: 由零或多个“/”符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。

parameters : 这是用于指定特殊参数的可选项。

query: 可选,查询用于给动态网页传递参数

fragment: 字符串,用于指定网络资源中的片段。

消息格式

客户端发送一个HTTP请求到服务器,请求消息包括以下格式:请求行、请求头部、空行和请求数据组成。如下:

img

服务器响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。如下:

img

HTTP请求方法

http/1.1请求方法有以下几种:

GET:请求指定的页面信息,并返回实体主体

HEAD: 类似于GET,不获取主体,只获取报头

POST:向指定资源提交数据进行处理请求。

PUT: 从客户端向服务器传送的数据取代指定的文档的内容

DELELTE:请求删除指定的页面

CONNECT: HTTP/1.1中预留给能够将连接改为管道方式的代理服务器

OPTIONS: 允许客户端查看服务器的性能

TRACE: 回显服务器收到的请求,用于测试和诊断

PATCH:对PUT的补充,进行局部更新。

HTTP响应头信息

字段说明
Accept可接受的响应内容类型
Allow服务器支持哪些请求方法(GET,POST等)
Content-Encoding文档的编码方法
Content-Length内容长度
Content-Type后面文档的MIME类型
Date当前的GMT时间
Expiress表示文档什么时候过期,从而丢弃
Last-Modified文档的最后改动时间
Location文档的地址
Refresh浏览器间隔多长时间后刷新文档,单位秒
Server服务器名称
Set-Cookie设置关联的Cookie
WWW-Authenticate客户在Authorization头中提供什么类型的授权信息

HTTP的Content-type

常见的媒体格式如下:

  • text/html : html格式
  • text/plain :纯文本格式
  • text/xml : xml格式
  • image/gif : gif格式
  • image/jpeg : jpg格式
  • image/png: png格式

以application开头的媒体格式类型:

  • application/xhtml+xml : xhtml格式
  • application/xml : xml格式
  • application/atom+xml : Atom XML聚合格式
  • application/json : JSON数据格式
  • application/pdf : pdf格式
  • application/msword: word格式
  • application/octet-stream : 二进制流
  • application/x-www-form-urlencoded
  • multipart/form-data: 需要在表单中进行文件上传时,使用该格式。

HTTP请求/响应

  1. 客户端连接到web服务器
  2. 客户端发送HTTP请求
  3. 服务器接收请求并返回HTTP响应
  4. 释放连接TCP连接
  5. 客户端解析HTML内容

HTTP响应的状态码

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

常见的状态码:

状态码状态码英文名称中文描述
200OK请求成功,一般用于GET和POST
301Moved Permanently永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
304Not Modified未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源
401Unauthorized请求要求用户的身份认证
402Payment Required保留,将来使用
403Forbidden服务器理解请求客户端的请求,但是拒绝执行此请求
404Not Found服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面
500Internal Server Error服务器内部错误,无法完成请求
502Bad Gateway作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
503Service Unavailable由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中

参考:

https://www.runoob.com/http/http-tutorial.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值