2.2WEB和HTTP

打CTF的时候了解过一些,不过没有系统的了解过,算是补齐知识把,

一,WEB

1)URL:

一串用来访问任意一个互联网网页的信息(连接,图片,音频,视频,)

我们通常见的都是网页连接,根据这个连接来访问网页

比如我这个博客:

https://www.cnblogs.com/msjs

这个里面并没有认证信息,和端口号,这个一般是默认的

后面那些查询字符串和片段表示符也没有,这个的话,一般是用来和网页互动用的,比如SQL注入

二,HTTP

超文本传输协议

浏览器先于服务器建立TCP连接,再根据HTTP协议向服务发出请求,服务器再把网页用HTML发送给用户来展示,最后断开TCP连接。

http是一种无状态的协议,不维护任何与客户相关的信息

0)HTML

一种超文本语言,现在一般都是HTML5,我们所有的网页的框架都是这个搭建而成的,非常的简单,学习前端必学,不过这个仅仅只能搭建大概框架,想要让网页更好看还需要学习CSS,JS。

1)非持久HTTP

HTTP/1.0使用非持久连接

在网页对象传过来之后就关闭TCP连接

如果有新的,那就只能重新建立TCP连接

2)持久HTTP

HTTP/1.1使用持久连接

在网页对象传过来之后不关闭TCP连接

如果有新的,那就继续通过这个socket传输对象

3)请求方式

1.流水线方式

一次只请求一个网页对象,等这个传输完后再请求下一个

2.非流水线方式

一次请求多个网页对象,不等待是否传输完成

4)请求

1.请求方法

HTTP/1.0

GET

POST

HEAD

HTTP/1.1

GET,POST,HEAD

PUT

DELETE

2.请求报文

示例:

GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate
Connection: keep-alive

3.服务器响应报文

示例:

HTTP/1.1 200 OK
Date: Wed, 18 Apr 2024 12:00:00 GMT
Server: Apache/2.4.1 (Unix)
Last-Modified: Wed, 18 Apr 2024 11:00:00 GMT
Content-Length: 12345
Content-Type: text/html; charset=UTF-8

<!DOCTYPE html>
<html>
<head>
    <title>Example Page</title>
</head>
<body>
    <h1>Hello, World!</h1>
    <!-- The rest of the HTML content -->
</body>
</html>
  • 状态行(Status Line):
    • HTTP 版本:与请求消息中的版本相匹配。
    • 状态码:三位数,表示请求的处理结果,如 200 表示成功,404 表示未找到资源。
    • 状态信息:状态码的简短描述。

状态行的格式示例:HTTP/1.1 200 OK

  • 响应头(Response Headers):
    • 包含了服务器环境信息、响应体的大小、服务器支持的压缩类型等。
    • 常见的响应头包括Content-TypeContent-LengthServerSet-Cookie等。
  • 空行
    • 响应头和响应体之间的分隔符,表示响应头的结束。
  • 响应体(可选):
    • 包含服务器返回的数据,如请求的网页内容、图片、JSON数据等。

参考:https://www.runoob.com/http/http-messages.html

4.cookies

使得HTTP能够保存状态的东西

当你第一次访问一个网站时,服务器会给你分配一个cookies,这个cookies存于本地的浏览器上,等你下次访问这个网站时,这个cookies会被加在请求里,服务器会根据这个cookies确认你是谁,你之前做了什么。

5)WEB缓存

1.代理服务器

设立一个代理服务器

用户A向代理服务器请求资源,代理服务器没有,再向原始服务器请求资源,保存到本地,再传给用户A

这时有一个用户B向代理服务器请求资源,代理服务器正好有,就直接传给用户B,不用再请求原始服务器。

这样就能减少原始服务器的压力,只需要面对固定的代理服务器,而不需要面对无数的用户

2.本地缓存

将常用的静态资源保存到浏览器缓存,储存到内存当中,访问时直接访问本地缓存,而不需要去频繁去请求服务器,减少了服务器压力,又加快了用户访问速度

posted @ 2025-04-25 17:38  漫宿骄盛  阅读(27)  评论(0)    收藏  举报