HTTP协议:HTTP(超文本传输协议)协议就是计算机在网络中进行通信所必须共同遵守的规则,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器,我们目前使用的是HTTP/1.1 版本。

  HTTP协议是无状态的:同一个客户端的这次请求和上次请求是没有对应关系的,对http服务器来说,它并不知道这两个请求来自同一个客户端。为了解决这个问题,Web程序引入了Cookie机制来维护状态。

  Web服务器,浏览器,代理服务器:当我们在浏览器地址栏输入URL后,我们的浏览器给Web服务器发送一个RequestWeb服务器接到Request后进行处理,生成相应的Response(对象),然后发送回浏览器,浏览器解析Response中的HTML,我们便看到了网页。代理服务器就是网络信息的中转站,其功能主要是提高访问速度(大多代理服务器都有缓存功能),隐藏身份

URL(Uniform Resource Locator)用于描述一个网络上的资源地址,基本合适为:

  scheme://host[:port#]/path/.../[?query-string]

scheme: 指定所需要的协议(例如:http,https,ftp)
host: http服务器的IP地址或者域名
port# http服务器的默认端口80,这种情况下可以省略。如果使用了其他端口,则必须指明,例如:https://www.cnblogs.com:8080/
path 访问资源的路径
query-string 发送给Web服务器的数据

URL的一个例子:http://localhost/MVCProject/emp?username=7788&password=pwd

Request:打开一个网页需要浏览器发送多次Request。

    1. 在浏览器输入URL时,浏览器发送一个Request去获取URL地址的html,服务器吧Response发送回浏览器。
    2. 浏览器解析Response中的html,发现其中引用很多其他文件,比如图片,CSS,JS。
    3. 浏览器会自动再次发送Request给服务器去获取图片,CSS,JS等相应的文件。
    4. 等所有文件都下载成功后,网页就被显示出来。

Get和POST方法:

http协议定义了很多种与服务器交互的方法,最基本的有4中,分别是GET,POST,PUT,DELETE.一个URL地址用于描述一个网络上的资源,而http中的GET,POST,PUT,DELETE就对应这个资源的查,改,增,删4个操作。我们最常见的是GETPOSTGET一般用于获取/查阅资源信息POST一般用于更新资源信息。

  1. GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,例如:emp.html?username=7788&password=pwd    POST方法是把提交的数据放在http包的body中。
  2. GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制。
  3. GET方式需要使用RequestQueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值。
  4. GET后退/刷新无害,POST数据会被重新提交(浏览器应该告知用户数据会被重新提交)。
  5. GET书签可以收藏,POST书签不可收藏。
  6. GET可以缓存,POST不能缓存。
  7. GET编码类型application/x-www-form-url ,POST编码类型encodedapplication/x-www-form-urlencoded 或 multipart/form-data 。为二进制数据使用多重编码。
  8. GET历史参数保留在浏览器历史中。POST参数不会保留在浏览器历史中。
  9. GET对数据长度有限制(URL的最大长度是2048个字符),GET方法向URL添加数据。POST无限制
  10. GET只允许ASCII字符,POST没有限制。
  11. GET安全性较差,发送的数据是URL的一部分,对任何人可见。POST参数不会显示在URL中,也不会保留在浏览器历史或web服务器日志中。

状态码:

  Response消息中的第一行叫状态行,状态码用来告诉http客户端,http服务器是否产生了预期的Response。HTTP状态码的英文为HTTP Status Code。

HTTP/1.1中定义了5类状态码,由三位数字组成。第一个数字定义了响应的类别

1**信息,服务器收到请求,需要请求者继续执行操作

2**成功,操作被成功接收并处理

3**重定向,需要进一步的操作以完成请求

4**客户端错误,请求包含语法错误或无法完成请求

5**服务器错误,服务器在处理请求的过程中发生了错误

下面是常见的HTTP状态码:

  • 200 – 请求成功
  • 301 – 资源(网页等)被永久转移到其它URL
  • 404 – 请求的资源(网页等)不存在
  • 500 – 内部服务器错误

HTTP的一些基本概念的更多相关文章

  1. 如何一步一步用DDD设计一个电商网站(一)—— 先理解核心概念

    一.前言     DDD(领域驱动设计)的一些介绍网上资料很多,这里就不继续描述了.自己使用领域驱动设计摸滚打爬也有2年多的时间,出于对知识的总结和分享,也是对自我理解的一个公开检验,介于博客园这个平 ...

  2. 【Machine Learning】机器学习及其基础概念简介

    机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

  3. 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之集群概念介绍(一)

    集群概念介绍(一)) 白宁超 2015年7月16日 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习 ...

  4. 声音分贝的概念,dBSPL.dBm,dBu,dBV,dBFS

    需要做个音频的PPM表,看着一堆的音频术语真是懵了,苦苦在网上扒了几天的文档,终于有了点收获,下面关于声音的分贝做个总结. 分贝 Decibel 分贝(dB)是一个对数单位(logarithmic u ...

  5. js面向对象学习 - 对象概念及创建对象

    原文地址:js面向对象学习笔记 一.对象概念 对象是什么?对象是“无序属性的集合,其属性可以包括基本值,对象或者函数”.也就是一组名值对的无序集合. 对象的特性(不可直接访问),也就是属性包含两种,数 ...

  6. 【Linux大系】Linux的概念与体系

    感谢原作者:Vamei 出处:http://www.cnblogs.com/vamei 我在这一系列文章中阐述Linux的基 本概念.Linux操作系统继承自UNIX.一个操作系统是一套控制和使用计算 ...

  7. KOTLIN开发语言文档(官方文档) -- 2.基本概念

    网页链接:https://kotlinlang.org/docs/reference/basic-types.html 2.   基本概念 2.1.  基本类型 从可以在任何变量处理调用成员函数和属性 ...

  8. .NET面试题系列[5] - 垃圾回收:概念与策略

    面试出现频率:经常出现,但通常不会问的十分深入.通常来说,看完我这篇文章就足够应付面试了.面试时主要考察垃圾回收的基本概念,标记-压缩算法,以及对于微软的垃圾回收模板的理解.知道什么时候需要继承IDi ...

  9. 《徐徐道来话Java》(1):泛型的基本概念

    泛型是一种编程范式(Programming Paradigm),是为了效率和重用性产生的.由Alexander Stepanov(C++标准库主要设计师)和David Musser(伦斯勒理工学院CS ...

  10. 简述linux同步与异步、阻塞与非阻塞概念以及五种IO模型

    1.概念剖析 相信很多从事linux后台开发工作的都接触过同步&异步.阻塞&非阻塞这样的概念,也相信都曾经产生过误解,比如认为同步就是阻塞.异步就是非阻塞,下面我们先剖析下这几个概念分 ...

随机推荐

  1. Spring Boot 2.2 增加了一个新功能,启动飞起~

    前几天栈长分享了一个好玩的框架:一个比Spring Boot快44倍的Java框架!,是不是感觉 Spring Boot 略慢?今天讲一下 Spring Boot 添加的这个新特性,可以大大提升 Sp ...

  2. 如何在ASP.NET Core程序启动时运行异步任务(3)

    原文:Running async tasks on app startup in ASP.NET Core (Part 3) 作者:Andrew Lock 译者:Lamond Lu 之前我写了两篇有关 ...

  3. 阿里云Ubuntu下安装、配置权限和导入本地mongodb

    ---恢复内容开始--- 第一部分:首先先在Ubuntu下安装好mongodb,步骤如下: 首先我们需要借助远程管理工具链接到阿里云上的ubuntu系统,接着进行如下操作 一.导出软件源的公钥 sud ...

  4. 前端笔记之JavaScript面向对象(二)内置构造函数&相关方法|属性|运算符&继承&面向对象

    一.复习 1.1复习上下文 函数的调用方式 上下文 fun() window obj.fun() obj box.onclick = fun box setInterval(fun,1000) set ...

  5. Mac实用技巧之:访达/Finder

    更多Mac实用技巧系列文章请访问我的博客:Mac实用技巧系列文章 Finder就相当于windows XP系统的『我的电脑』或win7/win10系统里的『计算机』(打开后叫资源管理器),find是查 ...

  6. [JavaScript] 函数节流(throttle)和函数防抖(debounce)

    js 的函数节流(throttle)和函数防抖(debounce)概述 函数防抖(debounce) 一个事件频繁触发,但是我们不想让他触发的这么频繁,于是我们就设置一个定时器让这个事件在 xxx 秒 ...

  7. 使用C#开发windows服务定时发消息到钉钉群_群组简单消息

    前言:本提醒服务,是由C#语言开发的,主要由windows服务项目和winform项目组成,运行服务可实现功能:向钉钉自定义机器人群组里,定时,定次,推送多个自定义消息内容,并实现主要功能的日志记录. ...

  8. 解析高德地图api获取省市区,生成最新三级联动sql表

    前言: 最近项目中用到了全国省市区三级信息,但是网上找到的信息都是比较旧的信息.与现在最新的地区信息匹配不上.后来想到高德地图上可能有这些信息.所以解析了一下api接口,生成了相关省市区的sql信息. ...

  9. 微信h5 video的问题

    https://blog.csdn.net/hf123lsk/article/details/78920211

  10. 【土旦】 使用Vant 的Uploader 上传图片 重定义返回格式 使用FormData格式提交

    前言 开发一个图片上传功能 需求要用vant中的Uploader , 发现 Uploader组件官方封装返回的数据是加密的,不适合我这个项目(需要上传到本地ftp服务器), 看了一下官方 issue ...