THM学习笔记—HTTP

这篇具有很好参考价值的文章主要介绍了THM学习笔记—HTTP。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是HTTP?(超文本传输协议)

HTTP是一个客户端(用户)和服务端(网站)之间请求和应答的标准,通常使用TCP协议。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)。我们称这个客户端为用户代理程序。应答的服务器上存储着一些资源,比如HTML文件和图像。我们称这个应答服务器为源服务器。在用户代理和源服务器中间可能存在多个“中间层”,比如代理服务器、网关或者隧道。

尽管TCP/IP协议是互联网上最流行的应用,但是在HTTP协议中并没有规定它必须使用或它支持的层。事实上HTTP可以在任何互联网协议或其他网络上实现。HTTP假定其下层协议提供可靠的传输。因此,任何能够提供这种保证的协议都可以被其使用,所以其在TCP/IP协议族使用TCP作为其传输层。

通常,由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,比如"HTTP/1.1 200 OK",以及返回的内容,如请求的文件、错误消息、或者其它信息。

什么是HTTPS?(超文本传输安全协议)

HTTPS是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换资料的隐私与完整性。

请求和响应

当我们访问一个网站时,浏览器需要向web服务器发出请求,以获取诸如HTML、图像等资源,并下载响应。在此之前,你需要告诉浏览器如何以及从哪里获取这些资源,这就是URL发挥作用的地方。

什么是URL?(统一资源定位符)

URL主要是关于如何在互联网上访问资源的指令。

THM学习笔记—HTTP,学习,笔记,http,网络,网络协议

  • Scheme: 这指示要使用的协议,如HTTP、HTTPS、FTP。

  • User: 一些服务需要身份验证登录,您可以将用户名和密码放入URL以进行登录。

  • Host: 要访问的服务器的域名或IP地址。

  • Port: 要连接的端口,通常为HTTP的80端口和HTTPS的443端口,但也可以托管在1到65535之间的任何端口。

  • Path: 要访问的资源的文件名或位置。

  • Query String: 可以发送到请求路径的额外信息。例如,/blog?id=1 将告诉博客路径您要接收具有id为1的博客文章。

  • Fragment: 这是对实际请求页面上位置的引用。这通常用于具有长内容的页面,并且可以直接链接到页面的特定部分,使用户在访问页面时能够立即查看它。

发出请求

可以使用一行代码进行向web服务器发出请求,例如 "GET / HTTP/1.1"。

但为了更丰富的Web体验,你还需要发送其他数据。这些其他数据被包含在称为头文件的地方,其中头文件包含要发送给您正在通信的web服务器的额外信息。

示例请求:

GET / HTTP/1.1
Host: tryhackme.com
User-Agent: Mozilla/5.0 Firefox/87.0
Referer: https://tryhackme.com/

第1行: 这个请求发送了GET方法,请求首页并告诉Web服务器我们使用HTTP协议版本1.1。

第2行: 我们告诉Web服务器我们想要的网站是tryhackme.com。

第3行: 我们告诉Web服务器我们正在使用Firefox版本87浏览器。

第4行: 我们告诉Web服务器引荐我们到达这个网页的网页是https://tryhackme.com。

第5行: HTTP请求总是以一个空行结束,以通知Web服务器请求已经完成。

示例响应:

HTTP/1.1 200 OK
Server: nginx/1.15.8
Date: Fri, 09 Apr 2021 13:34:03 GMT
Content-Type: text/html
Content-Length: 98

<html>
<head>
    <title>TryHackMe</title>
</head>
<body>
    Welcome To TryHackMe.com
</body>
</html>

第1行: HTTP 1.1是服务器使用的HTTP协议的版本,随后是HTTP状态代码,在这种情况下是"200 OK",告诉我们请求已成功完成。

第2行: 这告诉我们Web服务器软件和版本号。

第3行: Web服务器的当前日期、时间和时区。

第4行: Content-Type标头告诉客户端将发送什么类型的信息,例如HTML、图像、视频、pdf、XML。

第5行: Content-Length告诉客户端响应的长度,这样我们就可以确认没有丢失任何数据。

第6行: HTTP响应包含一个空行以确认HTTP响应的结束。

第7-14行: 请求的信息,在这种情况下是主页。

HTTP方法

HTTP方法是客户端在进行HTTP请求时展示其预期动作的一种方式。

GET请求

用于从Web服务器获取信息。

POST请求

用于向Web服务器提交数据并可能创建新记录。

PUT请求

用于向Web服务器提交数据以更新信息。

DELETE请求

用于从Web服务器中删除信息/记录。

HTTP状态码

当HTTP服务器响应时,第一行始终包含状态码,通知客户端其请求的结果以及可能如何处理它。这些状态码可以分为5个不同的范围:

100-199 - 信息响应 这些用于告诉客户端其请求的第一部分已被接受,并且应继续发送其余请求的代码。这些代码现在不再很常见。
200-299 - 成功 此范围的状态代码用于告诉客户端其请求已成功。
300-399 - 重定向 这些用于将客户端的请求重定向到另一个资源。这可以是指向不同网页或完全不同网站的重定向。
400-499 - 客户端错误 用于通知客户端其请求存在错误。
500-599 - 服务器错误 这保留给发生在服务器端的错误,通常表示服务器处理请求时出现相当严重的问题。

常见的HTTP状态码:

200 - OK 请求已成功完成。
201 - Created 已创建资源(例如新用户或新博客文章)。
301 - Moved Permanently 这将客户端的浏览器重定向到新的网页,或告诉搜索引擎页面已经移到其他地方,请改为查看那里。
302 - Found 类似于上面的永久重定向,但正如名称所示,这只是一个临时更改,可能在不久的将来再次更改。
400 - Bad Request 这告诉浏览器请求中有些错误或缺失。有时,如果被请求的web服务器资源期望客户端没有发送的某个参数,则可能使用这个。
401 - Not Authorised 在您经过授权之前,您目前不允许查看此资源。最常见的是使用用户名和密码进行授权。
403 - Forbidden 无论是否登录,您都无权查看此资源。
405 - Method Not Allowed 资源不允许使用此方法请求,例如,当它期望POST请求而您发送了GET请求时。
404 - Page Not Found 您请求的页面/资源不存在。
500 - Internal Service Error 服务器在处理请求时遇到了某种错误,不知道如何正确处理。
503 - Service Unavailable 该服务器无法处理您的请求,因为它要么过载,要么正在进行维护。

Headers

头部是在进行请求时可以发送给Web服务器的附加数据。

虽然在进行HTTP请求时没有头部是严格要求的,但是如果没有头部,你将很难正确查看网站。

常见的请求头部

Host: 一些web服务器托管多个网站,通过提供主机头部,您可以告诉它您需要哪一个,否则您将只收到服务器的默认网站。

User-Agent: 这是您的浏览器软件和版本号,告诉Web服务器您的浏览器软件有助于为您的浏览器正确格式化网站,而且HTML、JavaScript和CSS的某些元素仅在特定的浏览器中可用。

Content-Length: 当向Web服务器发送数据(例如在表单中),内容长度告诉Web服务器在Web请求中期望多少数据。这样服务器就可以确保没有数据丢失。

Accept-Encoding: 告诉Web服务器浏览器支持哪些类型的压缩方法,以便可以将数据在互联网上传输时缩小。

Cookie: 从服务器接收“Set-Cookie”头部时保存的数据,然后在每次进一步的请求中,您将将Cookie数据发送回Web服务器。由于HTTP是无状态的(不跟踪您之前的请求),Cookie可用于提醒Web服务器您是谁、网站的一些个人设置或者您之前是否访问过该网站。

常见的响应头部

Set-Cookie: 存储的信息在每次请求时发送回Web服务器。

Cache-Control: 在浏览器的缓存中存储响应内容多长时间,然后再次请求它。

Content-Type: 这告诉客户端正在返回的数据类型,例如HTML、CSS、JavaScript、图像、PDF、视频等。使用内容类型标头,浏览器就知道如何处理数据。

Content-Encoding: 在将数据通过互联网发送时使用了哪种方法进行压缩。

Cookies

它们只是存储在计算机上的一小段数据。当您从Web服务器接收到“Set-Cookie”头部时,Cookie就会被保存。然后,您进行的每个进一步的请求都将Cookie数据发送回Web服务器。由于HTTP是无状态的(不跟踪您之前的请求),Cookie可用于提醒Web服务器您是谁、网站的一些个人设置或者您之前是否访问过该网站。

Cookie可用于许多目的,但最常用于网站身份验证。Cookie值通常不是一个清晰的字符串,您可以看到密码,而是一个令牌(不容易被人类猜测的唯一秘密代码)。文章来源地址https://www.toymoban.com/news/detail-805626.html

到了这里,关于THM学习笔记—HTTP的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 网络爬虫学习笔记 1 HTTP基本原理

          ~~~~~           HTTP(Hyper Text Transfer Protocol,超文本传输协议)是一种使用最为广泛的网络请求方式,常见于在浏览器输入一个地址。 URL(Universal Resource Locator,统一资源定位器) URI(Uniform Resource Identifier,统一资源标识符) URL 是 URI 的子集,URI还包括一个子类 UR

    2024年02月08日
    浏览(39)
  • 【计网笔记06】计算机网络之应用层协议(SMTP协议、POP3协议、HTTP协议)、DNS域名系统、电子邮件系统

    这篇文章,主要介绍计算机网络之应用层协议(SMTP协议、POP3协议、HTTP协议)、DNS域名系统、电子邮件系统。 目录 一、计算机网络之应用层 1.1、应用层介绍 1.2、网络应用模型

    2024年02月08日
    浏览(55)
  • 《网络爬虫开发实战》学习笔记:1.1 HTTP基本原理

    1.1.1 URI和URL ​ URI ,全称Uniform Resource Identifier,即 统一资源标志符 ; URL ,全称Uniform Resource Locator,即 统一资源定位符 。 ​ 举例来说,https://github.com/favicon.ico既是一个URI,也是一个URL。即有favicon.ico这样一个图标资源,用这样一个URI/URL指定了访问它的唯一方式,其中包括

    2024年02月03日
    浏览(46)
  • 网络协议报文理解刨析篇二(再谈Http和Https), 加上TCP/UDP/IP协议分析(理解着学习), 面试官都惊讶你对网络的见解

    目录 前文链接(系列助学, 也为后文学习做铺垫, 可按需读取) 一. 再谈HTTP再理解 二. HTTP对比学习HTTPS HTTP和HTTPS的区别如下: 三.TCP协议  (三次握手四次挥手细节过程理解在之前的博文中有详细图解) tcp缓冲区概念的引入  (解释流量控制): 确认应答(ACK)机制的理解 (编序号)

    2023年04月09日
    浏览(62)
  • 网络协议HTTP/1、HTTP/2 及 HTTP/3详解

    目录 概述  一、发展史 HTTP/1.1  Keep-alive  动静分离  HTTP/2 二进制传输   多路复用 Header 压缩 服务端 Push  HTTP/3 QUIC  多路复用 0-RTT 纠错机制 三、小结 HTTP(Hyper Text Transformer Protocol,超文本传输协议)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到

    2024年02月02日
    浏览(57)
  • 【网络协议】聊聊http协议

    当我们输入www.baidu.com的时候,其实是先将baidu.com的域名进行DNS解析,转换成对应的ip地址,然后开始进行基于TCP构建三次握手的连接,目前使用的是1.1 默认是开启了keep-Alive。可以在多次请求中进行连接复用。 连接建立之后,就要发送HTTP的请求了, 整体其实就是三部分,请

    2024年02月06日
    浏览(59)
  • 网络协议 - HTTP 协议详解

    HTTP 协议详解,web开发必备。 URI 包含 URL 和 URN,目前 WEB 只有 URL 比较流行,所以见到的基本都是 URL。 URI(Uniform Resource Identifier,统一资源标识符) URL(Uniform Resource Locator,统一资源定位符) URN(Uniform Resource Name,统一资源名称) 1. 请求报文 2. 响应报文 客户端发送的 请求报文 第

    2024年02月04日
    浏览(54)
  • 网络协议与攻击模拟-21-HTTP协议

    1、 HTTP 协议结构 2、在 Windows server 去搭建 web 服务器 3、分析 HTTP 协议流量 1、概念 HTTP (超文本传输协议)是用于在万维网服务器上传输超文本( HTML )到本地浏览器的传输协议 属于 TCP / IP 协议簇的一员( HTML 文件、图片、查询结构等) 基于传输层 TCP 的80端口 2、万维网服

    2024年02月16日
    浏览(44)
  • HTTP协议安全头部的笔记

    本文于2016年3月完成,发布在个人博客网站上。 考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来。 近日项目组对当前开发、维护的Web系统做了AppScan扫描,扫描的结果惨不忍睹,问题很多。报告中报到“缺乏HTTP安全头部”。之前对HTTP协议

    2024年02月04日
    浏览(35)
  • [网络原理] HTTP协议

    要珍惜时间呀 HTTP协议是应用层协议,TCP/IP协议为传输层协议,负责传输数据.而HTTP协议相当于对传输的数据据怎样处理和使用进行说明. 每次,我们访问网站的时候,都会给网站的服务器发送一个HTTP请求,服务器收到请求后,会返回一个HTTP响应.如下图所示. 下图,为一个HTTP请求的格式

    2024年02月03日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包