系统学习Windows---HTTP协议

本文深入解析了HTTP协议的工作原理,包括其在C/S和B/S架构中的应用,详细介绍了请求和响应报文的构成,以及GET、POST等请求方法的区别。同时,文章还列举了常见的HTTP状态码及其含义。

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

简介

HTTP协议(超文本传输协议),用于万维网服务器传输超文本到本地浏览器的传送协议。

  • HTTP是一个基于TCP/IP通信协议来传送数据(HTML文件、图片文件、查询结果等等)

  • Http协议是基于C/S或B/S架构。

C/S架构:Client-Server 客户端-服务器
B/S架构:Browser-Server 浏览器-服务器

浏览器作为http客户端通过URL向http服务器即web服务器发送所有请求。web服务器接受到请求之后,会向客户端发送相应信息。

http常用端口是80,https常用端口443

URL

HTTP 使用统一资源标识符(URI)来传输数据和建立连接。
URL是一种特殊类型的URI,全称是统一资源定位符,是互联网上标识某一处资源的地址。

举例:
https://www.runoob.com/linux/linux-cloud-server.html
https:协议部分
www.runoob.com 域名或者端口号
Linux 虚拟目录部分
Linux-cloud-server 文件部分。

Server角度看工作流程

建立连接
接受请求
处理请求
访问资源
构建响应报文
发送响应报文
记录日志

请求报文:
请求行、请求头部、空行、请求数据
响应报文:
状态行、响应报头、空行和响应数据

请求方法:
GET:请求获得指定页面的信息
HEAD:类似get请求,区别在于HEAD不含有呈现数据,而仅仅是HTTP头信息。
POST:向指定资源提交数据进行处理请求(比如提交表单数据或者是上传文件)
PUT:从客户端向服务端传送数据取代指定内容
DELETE:请求服务器删除指定页面
CONNECT:预留能够将连接改为管道方式的代理服务器
OPTIONS:允许客户端查看服务器的性能
TRACE:回显服务器收到的请求

GET和POST方法之间的区别

  1. get提交的数据会放在url之后,以?分割url和传输数据,参数之间以&相连。post方法是将参数放在body里面。
  2. get提交的数据大小有限值(因为浏览器对url的长度有限制),而post方法提交的数据没有限制。
  3. get方式使用的是request.QueryString来获得变量的值,而post方法是通过request.From方法来获取变量的值。
  4. get方法提交数据是不安全的,比如一个登录界面,通过get方法提交用户名和密码,将在url上直接显示,是不安全的。别人也可以通过浏览器的历史记录直接得到用户名和密码。

状态码
1**:指示信息,标识请求已经接受,继续处理
2**:成功,标识请求已经被成功接受、处理
3**:重定向,要求必须完成进一步的操作
4**:客户端错误,请求的语法有错误或者请求无法实现
5**:服务端错误,服务器未能实现合法的请求
200 ok请求已经正常处理完毕
301 请求永久重定向
302 请求临时重定向
304 请求被重定向到客户端本地缓存
400 客户端请求存在语法错误
401 请求客户端没有经过授权
403 客户端的请求被服务器拒绝,一般客户端没有权限
404 客户端请求的url不存在
500 服务端永久错误
503 服务端发生临时错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值