Http协议在网站中的体现

文章目录

  • [1. Http协议简介](#1. Http协议简介)
  • [2. 网站中的体现](#2. 网站中的体现)
    • [2.1 访问网站](#2.1 访问网站)
    • [2.2 请求](#2.2 请求)
    • [2.3 请求头](#2.3 请求头)
    • [2.4 请求方式](#2.4 请求方式)
    • [2.5 响应](#2.5 响应)
  • [3. 总结](#3. 总结)

1. Http协议简介

HTTP(超文本传输协议) 是一种广泛应用于互联网上的应用层协议,用于在Web浏览器和Web服务器之间传输数据。HTTP协议定义了客户端(通常是浏览器)与服务器之间的通信规则,使得浏览器能够请求网页资源,并将这些资源呈现给用户。

HTTP协议基于TCP/IP协议运行,遵循客户端-服务器模型。客户端发送请求,服务器处理请求并返回响应。HTTP协议是无状态的,这意味着每次请求都是独立的,服务器不会保存任何关于客户端状态的信息。这种无状态特性使得HTTP协议能够快速响应请求,但同时也限制了在多个请求之间共享数据的能力。

HTTP协议支持多种请求方法,其中最常用的有GET和POST。GET方法用于从服务器获取数据,而POST方法则用于向服务器发送数据,例如通过HTML表单提交数据。此外,HTTP还支持其他请求方法如PUT、DELETE、HEAD、OPTIONS、TRACE和CONNECT等。

HTTP协议的消息结构包括请求行、请求头、空行和请求正文,以及响应状态行、响应头、空行和响应正文。这些结构确保了请求和响应的格式统一,使得不同客户端和服务器能够正确解析和处理数据。

HTTP协议的发展经历了多个版本的迭代,从最初的HTTP/0.9到后来的HTTP/1.1,再到现在的HTTP/2,每个版本都引入了新的功能和技术改进,如多路复用、服务器推送和头信息压缩等。这些改进提高了HTTP协议的效率和性能。

2. 网站中的体现

2.1 访问网站

我们以tomcat为例子,启动tomcat,访问其中的图片

右击检查,点击网络

这里是请求的部分数据

2.2 请求

  1. 请求行(Request Line) :请求行是HTTP请求的第一行,包含三个主要部分:
    • 请求方法(Method) :指示所要执行的操作,如GET、POST、PUT、DELETE等。
    • 请求目标(Request URI) :通常是请求的URL或者资源的路径,例如/index.html。
    • HTTP版本(HTTP Version) :表示使用的HTTP协议版本,如HTTP/1.1或HTTP/2。
  2. 请求头(Request Headers ) :请求头用于传递客户端向服务器发送的额外信息,帮助服务器理解请求的上下文和处理方式,键值对。常见的请求头包括:
    • User-Agent:客户端的标识信息,如浏览器类型和版本。
    • Content-Type:指定请求体的数据类型,如application/json、text/plain等。
    • Content-Length:请求体的长度。
    • Cookie:用于会话跟踪和身份验证的信息。
    • 空行(Blank Line) :用于分隔请求头和请求体,表示请求头结束。
  3. 请求体(Request Body) :请求体是可选部分,通常在POST请求中使用,包含实际要发送给服务器的数据。例如,在POST请求中,可以包含表单数据或其他格式的数据。

这些组成部分共同构成了一个完整的HTTP请求,使得客户端能够向服务器发送明确的请求,并获得相应的响应。不同的请求方法(如GET和POST)有不同的使用场景和数据传输方式。GET请求通常用于获取资源,而POST请求则用于提交数据或创建资源。

2.3 请求头

  1. Host

    客户端指定自己想访问的WEB服务器的域名/IP 地址和端口号

  2. Connection

    连接方式。如果值是close则表示基于短连接方式,如果是keep-alive,网络连接就是持久的,在一定范围内是不会关闭的,使得对同一个服务器的请求可以继续在该连接上完成。

  3. Upgrade-Insecure-Requests

    服务端是否支持https加密协议

  4. Cache-Control

    指定请求和响应遵守的缓存机制

  5. User-Agent

    浏览器表明身份(是哪种浏览器)。例如Chrome浏览器:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36

  6. Accept

    告诉WEB服务器自己接受什么介质类型,*/*表示任何类型,type/*表示该类型下的所有子类型

  7. Accept-Encoding

    浏览器申明自己接受的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法

  8. Accept-Language

    浏览器申明自己接收的语言。语言跟字符集的区别:中文是语言,中文有很多字符集,比如gbk等

  9. Accept-Charset

    浏览器告诉服务器自己能接收的字符集

  10. Referer

    浏览器向WEB服务器表明自己是从哪个网页URL获得点击当前请求中的网址/URL

  11. Cookie

    可向服务端传递数据一种类型

  12. Refresh

    表示浏览器应该在多少时间之后刷新文档,以秒计时

2.4 请求方式

  1. GET请求:GET请求是最常用的HTTP请求方式之一,主要用于从服务器获取资源。其特点包括:

    • 安全性:GET请求不会对服务器上的资源进行修改,因此被认为是安全的。
    • 参数传递:GET请求的参数通常附加在URL后面,格式为 "key=value"。
    • 缓存 :GET请求的响应可以被缓存,这有助于提高性能和减少服务器负载。
      历史记录:浏览器会保留GET请求的历史记录,这对于用户导航非常有用。
  2. POST请求:POST请求用于向服务器提交数据,通常会导致服务器端的状态发生变化。其特点包括:

    • 安全性:POST请求相对更安全,因为数据不会暴露在URL中。
    • 数据传输:POST请求的数据包含在请求体中,而不是URL中,因此可以传输更大的数据量。
    • 非幂等性:多次发送POST请求可能会导致不同的结果,因为每次请求都可能改变服务器的状态。
  3. PUT请求:PUT请求用于更新服务器上的资源。其特点包括:

    • 更新操作:PUT请求用于完全更新资源,会覆盖之前的数据。
    • 数据格式:PUT请求通常使用JSON或XML格式提交数据。
  4. DELETE请求:DELETE请求用于删除服务器上的资源。其特点包括:

    • 删除操作:DELETE请求用于删除指定的资源。
  5. 其他请求方式

    • OPTIONS:用于获取服务器支持的HTTP请求方法和其他选项信息,常用于跨域请求的预检。
    • HEAD:与GET类似,但只返回响应头,不返回响应体,常用于获取资源元数据。
    • TRACE:用于追踪请求-响应链路,服务器将请求原封不动地返回给客户端。
    • CONNECT:用于建立与服务器的隧道,常用于HTTPS等加密通信协议的代理。

2.5 响应

在HTTP协议中,响应是指服务器对客户端请求的回应。它包括三个主要部分:响应行、响应头和响应体

  • 响应行:包含HTTP版本、状态码和状态短语,例如"HTTP/1.1 200 OK"表示请求成功。
  • 响应头:提供关于响应的详细信息,如Content-Type(文档类型)、Server(服务器信息)、Set-Cookie(设置Cookie)等。
  • 响应体:包含实际的数据内容,如HTML代码或图片的二进制数据。

3. 总结

相关推荐
hardWork_yulu1 小时前
Android RTMP直播练习实践
网络·安卓
qq_243050791 小时前
irpas:互联网路由协议攻击套件!全参数详细教程!Kali Linux入门教程!黑客渗透测试!
linux·网络·web安全·网络安全·黑客·渗透测试·系统安全
chengpei1473 小时前
实现一个自己的spring-boot-starter,基于SQL生成HTTP接口
java·数据库·spring boot·sql·http
大丈夫立于天地间3 小时前
机遇、挑战与融合创新之路
网络
青旋.4 小时前
数据链路层——以太网协议
网络·网络协议·tcp/ip
东锋1.35 小时前
计算机网络中常用的端口号以及对应的应用程序
网络
IpdataCloud6 小时前
如何提升IP地址查询数据服务的安全?
网络·tcp/ip·安全
互联网资讯6 小时前
详解共享WiFi小程序怎么弄!
大数据·运维·网络·人工智能·小程序·生活
可涵不会debug7 小时前
【C++】在线五子棋对战项目网页版
linux·服务器·网络·c++·git
RayTz8 小时前
STM32-CAN总线
网络·stm32·嵌入式硬件