HTTP协议

本文深入讲解HTTP协议的基础知识,包括HTTP会话流程、调试工具的使用、请求与响应消息的结构,以及GET与POST请求的区别。同时,详细解析Content-Type的作用与常见媒体格式类型。

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

知识点:

  1. http简介
  2. http会话流程
  3. 调试工具
  4. http请求消息
  5. http响应信息
  6. http消息到其他细节
  7. get请求和post请求方式
  8. 其他细节
    1. Content-Type 详解

一.http简介

  • WEB浏览器和WEB服务器之间的一问一答的交互过程必须遵循一定的规则,这个规则就是http协议。
  • HTTP是hypertext transfer protocol(超文本协议)的简写,它是TCP/IP协议集中的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程以及数据本身的格式。
  • HTTP协议的版本HTTP/1.0、HTTP/1.1、HTTP-NG

二.http会话流程

  • 浏览器与WEB服务器的连接是短暂的,每次连接只处理一个请求和响应。对于每一个页面的访问,浏览器与WEB服务器都要建立一个单独的连接。
  • 浏览器到WEB服务器之间的所有通讯都是完全独立的分开和响应对。

三.调试工具

对于HTTP协议的学习,我们将借助谷歌浏览器FIREFOX的调试工具来实际观察浏览器和服务器之间传输数据的具体内容,快捷键F12。

四.http请求消息

请求消息 由 请求行,请求头,空行和请求数据4部分组成。(其中的一些消息头和实体内容都是可选的,消息头和和实体内容之间要用空行隔开。)

五.http响应信息

  • 响应通常包括一个状态行、一些响应报头、一个空行和文档。(其中的一些消息头和实体内容都是可选的,消息头和实体内容要用空行隔开)
  • 一个状态行:访问页面 http://127.0.0.1/listHero,可以看到响应代码是 200 OK,即表示响应成功。
    http协议中的响应代码从 1xx ~ 5xx,一共有41种,不过很多状态码很少会接触到。 

六.http消息到其他细节

  • 响应消息的实体内容就是网页文件的内容,也就是在浏览器中使用查看源文件的方式所看到的内容。
  • 一个使用get方式的请求消息中不能包含实体内容,只有使用post、put和delete方法的请求消息中才可以包含实体内容。

七.get请求和post请求方式

  • 使用get方式传递参数
    1. 在浏览器地址中输入某个URL地址或单击网页上的一个超链接,浏览器发出的HTT请求消息的请求方式为get。
    2. 如果网页中的<form>表单元素的method属性被设置为“GET”,浏览器提交这个form表单时生成的HTTP请求消息的请求方式也为get。
    3. 使用get方式传递的数据量一般限制在1KB以下。
    4. 使用get请求方式给WEB服务器传递参数的格式:
      http://www.baidu.com/comter.jsp?name=yi&password=123
  • 使用post方式传递参数
    1. post请求方式主要用于向WEB服务器端程序提交form表单中的数据:form表单的method设置为POST。
    2. post请求方式将各个表单字段元素机器数据为HTTP消息的实体内容发送给WEB服务器。传送的数据量要比使用get方式传送的数据量大的多。
    3. 使用post请求方式给WEB服务器传递参数的格式:
      http://www.baidu.com/counter.jsp/

get请求和post请求的区别?

  1. get请求用来从服务器上获得资源;而post是用来向服务器提交数据;
  2. 传送方式:get将表单中数据按照name=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;
    post是将表单中的数据放在HTTP协议的请求头或者消息体中,传递到action所指向URL;
  3. 传送长度:get传输的数据要受到URL长度限制(1024字节,也就是1KB);而post可以传输大量的数据,上传文件通常使用post的方式;
  4. 传送安全性:使用get时参数会显示在地址栏上,如果这些数据不是敏感数据,那么可以使用get;对于敏感数据还是应该使用post;
  5. get使用MIME类型application/x-www-form-urlencoded的URL编码(也叫百分号编码)文本的格式传递参数,保证被传送的参数遵循规范的文本组成,例如一个空格的编码是“%20”。

八.其他细节

一.Content-Type 详解

Content-Type 详解_leoss.H的博客-优快云博客_content-type

设置Content-Disposition,可以定义文件名
response.setHeader("Content-Disposition", "attachment;filename=test.xlsx");

Content-Type(内容协议),一般指的是网页中存在的 Conteng-Type ,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,这就是我们经常看到一些 PHP 网页点击的结果却是下载一个文件或一张图片的原因。

Content-Type 标头告诉客户端返回内容的类型。
Content-Type: text/html; charset=utf-8
Content-Type: multipart/form-data; boundary=something

常见的媒体格式类型如下:
    text/html : HTML格式
    text/plain :纯文本格式
    text/xml : XML格式
    image/gif :gif图片格式
    image/jpeg :jpg图片格式
    image/png:png图片格式
    text/javascript:js格式
    以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 : 中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)
    另外一种常见的媒体格式是上传文件之时使用的:
multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式

content-type在线查询工具:https://tool.oschina.net/commons

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值